使用复选框在 mvc 中创建用户时添加功能

2023-12-11

我想在 mvc 中创建具有特殊功能的用户。当用户要创建时,我想为每个用户分配一些特殊功能,例如特定用户拥有自己的房子,使用复选框选择拥有自己的汽车。特定功能驻留在名为 feature 的不同表中。那么我如何在创建用户时向用户添加这些功能。

我创建了一个名为 ViewModelUserWithFeature 的视图模型

public class ViewModelUserWithFeature
{
        public User User { get; set; }
        public Feature Feature { get; set; }
        public List<Feature> feature { get; set; }
        public IEnumerable<User> IUser { get; set; }
        private UserDbContext userDbContext;
        private IUserService userService;

 public void ViewUserList()
        {
            userService = new RoleService(userDbContext);
            IUser = userService.GetUsers();

        }
        public void AddNewUser(User userAdd)
        {
            userService = new UserService(userDbContext);
            User = userService.AddUser(userAdd);
            userService.SaveUser();
        }
}

这是我的视图,其中我想要两个文本框和一个功能列表,这些功能将通过复选框进行选择并附加给用户。

@model App.ViewModel.ViewModelUserWithFeature
 @using (Html.BeginForm("Create", "User", FormMethod.Post))
    {
 <div>
 @Html.TextBoxFor(m => m.User.UserName)
                @Html.ValidationMessageFor(m => m.UserName)
            </div>
 <div>
 @Html.TextBoxFor(m => m.User.UserAddres)
                @Html.ValidationMessageFor(m => m.UserAddres)
            </div>
@for(int i=0; i < Model.Feature; i++)
{
<div class="cb"><input type="checkbox" name="checkbox"></div>
 <div class="per-content">
<label for="1"> Model.Feature.FeatureName</div>
}
<div>
 <button type="submit" id="btn-rd">Submit</button>
</div>
}

控制器

[HttpPost]
        public ActionResult Create(User user)
        {
 ViewModelUserWithFeature viewModelUserWithFeature = new ViewModelUserWithFeature(usertDbContext);
                if (ModelState.IsValid)
                {


                    viewModelUserWithFeature.AddNewUser(user);


                }
                return RedirectToAction("Index", viewModelUserWithFeature);
}

无法实现我到目前为止所尝试过的目标。请帮忙。提前致谢。


使用视图模型来表示您显示和编辑的内容

public class FeatureVM
{
  public int ID { get; set; }
  public string Name { get; set; }
  public bool IsSelected { get; set; }
}

public class UserVM
{
  public string Name { get; set; }
  public string Address { get; set; }
  public List<FeatureVM> Features { get; set; }
}

控制器

public ActionResult Create()
{
  UserVM model = new UserVM();
  model.Features = // map all available features
  return View(model);
}

[HttpPost]
public ActionResult Create(UserVM model)
{

}

View

@model UserVM
@using(Html.BeginForm())
{
  @Html.LabelFor(m => m.Name)
  @Html.TextBoxFor(m => m.Name)
  @Html.ValidationMessageFor(m => m.Name)
  .....
  for(int i = 0; i < Model.Features.Count; i++)
  {
    @Html.HiddenFor(m => m.Features[i].ID)
    @Html.CheckBoxFor(m => m.Features[i].IsSelected)
    @Html.LabelFor(m => m.Features[i].IsSelected, Model.Features[i].Name)
  }
  <input type="submit" value="Create" />
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用复选框在 mvc 中创建用户时添加功能 的相关文章

随机推荐