在对这个问题进行了大量搜索之后,我正在向社区寻求帮助:
我在视图中做类似的事情(如果我使用@Html.Action 或 PartialView,问题是一样的
@for(int i= 0; i< Model.Contacts.Count(); i++)
{
@Html.EditorFor(m => m.Contacts[i] , "AccreditationContact" )
}
我有一个像这样的经典 EditorTemplate 或 PartialView
@model FrontOffice.Models.AccreditationStepSevenModel
<div>
@Html.LabelFor(m => m.Nom)
@Html.TextBoxFor(m => m.Nom)
@Html.ValidationMessageFor(m => m.Nom)
</div>
[There is a lots of other fields here]
为“Nom”字段生成的 html 看起来像这样:
<input id="Contacts_0__Nom" name="Contacts[0].Nom" type="text" value="Doe" >
<input id="Contacts_1__Nom" name="Contacts[1].Nom" type="text" value="Doe1" >
<input id="Contacts_2__Nom" name="Contacts[2].Nom" type="text" value="Doe2" >
当我提交表单时,这里没有问题,所有字段都由我的控制器中的本机 ModelBinder 正确绑定到一个数组中
现在我想在 javascript 中动态生成另一个 AccreditationStepSevenModel,我使用了 $load 和 Jquery。问题是生成的 html 不会增加名称然后我有多个具有相同名称的字段并且我的 ModelBinder 不再工作......
我想过在javascript中重命名名称,这会起作用,但是有更好的解决方案吗?
谢谢你的帮助 !