Asp.net MVC Nhibernate未在ListBox中收集所选项目
本文关键字:选项 项目 ListBox net MVC Nhibernate 未在 Asp | 更新日期: 2023-09-27 18:27:53
当用户选择角色中的项目并提交时,模型不会填充所选项目。如果我应该用另一种方式来做这件事,我能得到一些见解吗。
型号
public virtual string UserName { get; set; }
public virtual string Password { get; set; }
public virtual DateTime LastLogin { get; set; }
public virtual int FailedAttempts { get; set; }
public virtual bool IsLocked { get; set; }
public virtual IList<Role> Roles { get; set; }
控制器
[HttpPost]
public ActionResult Edit(Login user)
{
var u = repoLogin.Update(user);
repoLogin.Save(u);
return View(u);
}
查看
<label>Roles</label>
@Html.ListBoxFor(m => m.Roles, new SelectList(Enum.GetValues(typeof(LiveReport.Domain.Enum.UserRoles))))
Role
是一个复杂的对象。ListBoxFor发送与所选值相对应的简单字符串列表。
因此,您可以有一个属性来保存选定的值:
public virtual IList<string> SelectedRoles { get; set; }
然后将选择列表绑定到它:
@Html.ListBoxFor(
m => m.SelectedRoles,
new SelectList(
Enum.GetValues(typeof(LiveReport.Domain.Enum.UserRoles))
)
)
此外,您似乎正在使用一些枚举来填充选择列表项。因此,您可以使用与属性相同的枚举将列表绑定到:
public virtual IList<UserRoles> SelectedRoles { get; set; }