【发布时间】:2011-07-19 14:50:53
【问题描述】:
在带有 Razor 标记的 MVC 中的 EditorFor 视图中,如果你这样做:
@Html.TextBox("")
HTML 带有正确的模型输入名称,如下所示:
<input id="usr_Roles" name="usr.Roles" type="text" value="">
“usr.Roles”名称来自此 EditorFor 行:
@Html.EditorFor(modelItem => usr.Roles, "RoleList")
不幸的是,我正在尝试生成一组名为“usr.Roles”的复选框。由于 MVC 呈现复选框的方式,我不能使用 Html.Checkbox。我可以像这样手动生成它们:
@foreach (string roleName in Roles.GetAllRoles())
{
string checkboxId = "checkbox_" + roleName;
<input type="checkbox" name="usr.Roles" id="@checkboxId" value="@roleName" @Html.Raw(Model.Contains(roleName) ? "checked" : "") />
<label for="@checkboxId">@roleName</label>
}
上述方法有效,但这只是因为我手动将“usr.Roles”指定为复选框名称。
我的问题是:在对象和属性的迷宫中,@Html.TextBox 对象在哪里找到“usr.Roles”“usr-Roles”字符串?我可以自己找到它并在复选框中使用它吗?
【问题讨论】:
标签: asp.net-mvc-3 razor