Asp.net MVC Nhibernate未收集列表框中的选定项目
问题描述:
当用户选择角色中的项目并提交时,模型未填充选定项目。如果我应该以另一种方式进行操作,我可以请一些见解。Asp.net MVC Nhibernate未收集列表框中的选定项目
模型
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; }
这仍然不会绑定它们,因为用户角色的用户列表框中没有选择任何角色。 – 2012-03-15 18:41:36