在EditorTemplates中,我有一个接受模板List<string>
的模板。这应该为列表中的每个字符串创建一个文本框。
在模型中,属性具有[UIHint("EditList")]
。现在当我将它呈现给页面时,模板被正确调用,但索引设置错误。当我提交表格时,我得到:
MyList.[0]:test123
而不是
MyList[0]:test123
我正在使用MVC 3!,在我使用MVC 5的测试项目中使用相同的代码
查看:
<div class="col-md-10">
@Html.EditorFor(model => model.MyList)
@Html.ValidationMessageFor(model => model.MyList)
</div>
型号:
public class FormTest
{
[UIHint("EditListWithAddButton")]
public List<string> MyList { get; set; }
}
EditorForTemplate:
@model List<string>
<div class="EditListWithAddButton">
<ul>
@for (int i = 0; i < Model.Count(); i++)
{
<li>@Html.EditorFor(model => Model[i])</li>
}
</ul>
</div>
答案 0 :(得分:0)
蛮力解决方案,但是,没有时间进行调试......
@Html.Raw(@Html.EditorFor(model => Model[i])
.ToString().Replace("__", "_").Replace(".[", "["))
这将取代Editfortempalt,索引再次正确......
如果有人有更好的解决方案/可以解释问题,请告诉我