0
任何人都知道如何从Controller中调用与Html.EditorFor()等效的函数?Html.EditorFor()的等效代码
我在我的视图中有一个标准表。该行使用的EditorTemplate
<table id="tableOfBar">
<tfoot>
<tr><td colspan="2">Some paging controls and whatnot</td></tr>
</tfoot>
<tbody>
<% for (int i=0;i<Model.Rows.Count();i++)
{
int j = i;
%><%: Html.EditorFor(m => m.Rows[j], "FooRowTemplate", "Rows["+j+"]", new { OtherViewDataStuff})%>
</tbody>
</table>
编辑模板是一个强类型,返回<tr>
和子元素局部视图。
所有这些工作正常,但下一步是添加一个“添加行”按钮。出于一系列超出范围的原因,我想打击服务器而不是纯粹的客户端解决方案。我想要做的是将EditorTemplate作为部分视图返回,并使JavaScript返回Html并将其附加到表中。
[HttpPost]
public ActionResult AddRow(FooModel model)
{
var row = new FooRowModel();
model.AddRow(row);
var index = model.Rows.IndexOf(row);
return PartialView("~/Areas/MyArea/Views/Shared/EditorTemplates/FooRowTemplate.ascx", model.Rows[index]);
}
除了输入命名之外,所有这些工作都很好。缺少的部分是集合前缀,它告诉模型活页夹如何在回发时重新组装模型。在视图方面,您可以指定应该是什么(这是上述EditorFor()
调用的"Rows["+j+"]"
部分)。
你能给部分视图一个像EditorFor()一样的html字段名称前缀吗?有关如何使这项工作的任何想法?我的整个方法可能完全错误,没关系。告诉我为什么。 :)
感谢您的帮助。