HtmlHelper.Hidden 的行为让我无法理解。
这是来自 Views/Shared/DisplayTemplates/Test.cshtml 中的模板。想法是在列表中的元素旁边输出一个删除按钮。所以视图接受一个 IEnumerable 的模型,然后使用@Html.EditorForModel() 来输出每个测试项。
因此,如果我将其放入 Test.cshtml:
<input type="hidden" name="Name" value="@Model.Name"/>
@Html.Hidden("Name2", Model.Name)
这产生了这个:
<input type="hidden" name="Name" value="test"/>
<input id="RoleList_12__Name2" name="RoleList[12].Name2" type="hidden" value="test" />
为什么 Html 助手的名称与我告诉它的名称不同?我认为这是有意的,但我不明白为什么。
更新
我将如何继续并在我的控制器中检索 RoleList[12].Name?
我的删除功能接受:
[HttpPost]
public ActionResult DeleteRole(Roles.Test model)
{
}
那怎么能接受 RoleList[12] 名称项?如果我尝试,它总是返回 null 。