我正在按照以下代码here回答这个问题:
SomeControl.cshtml
@model Econo.WebUI.ViewModel.UserRoleViewModel
@Html.HiddenFor(x => Model.UserId)
@Html.EditorFor(x => Model.Roles)
/Shared/EditorTemplates/Roles.cshtml
@model Econo.WebUI.ViewModel.RoleViewModel
@Html.EditorFor(m => m.IsInRole)
@Html.EditorFor(m => m.RoleId)
@Html.EditorFor(m => m.RoleName)
出于某种原因,这只是输出:
<input id="UserId" type="hidden" value="1LS82" name="UserId">
FalseFalse
FalseFalse显示数据库中有2个角色,而用户不在其中,这是正确的。但我需要一个带有ID和名称的复选框。还可以将其提交回服务器以向用户添加角色。
答案 0 :(得分:1)
你的部分名字错误。它应该是~/Shared/EditorTemplates/RoleViewModel.cshtml
而不是~/Shared/EditorTemplates/Roles.cshtml
。然后:
@model Econo.WebUI.ViewModel.RoleViewModel
@Html.CheckBoxFor(m => m.IsInRole)
@Html.LabelFor(m => m.RoleName)
@Html.HiddenFor(m => m.RoleId)