我有以下asp.net mvc2模板:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ncontinuity2.core.dto.TrainingLookUpContainer>" %>
<%= Html.EditorFor(x => ViewData.Model.TrainingTree, "TrainingCategory")%>
您可以看到我想将它绑定到TrainingLookUpContainer类型的模型。
问题是,正在生成以下标记:
<input id="ViewData_Model_TrainingTree_TrainingCourses_0__Uid" name="ViewData.Model.TrainingTree.TrainingCourses[0].Uid" type="hidden" value="cbd43b5a-2a6a-493f-98e4-9dc9010cbaaf" />
我反对的位是元素id和ViewData_Model_
的{{1}}前缀。 name属性的前缀。
我不知道这个前缀来自哪里,当然这意味着模型在发布表单时永远不会受到限制。
还有另外一种方法,我可以控制生成的标记,或者这是框架中的错误。我在其他部分使用了EditorFor,它工作正常。
答案 0 :(得分:1)
更改
<%= Html.EditorFor(x => ViewData.Model.TrainingTree, "TrainingCategory")%>
到
<%= Html.EditorFor(x => x.TrainingTree, "TrainingCategory")%>