ASP MVC3用于集合的自定义Editortemplate(空是否为空)
-
10-10-2019 - |
题
经过大量的谷歌搜索,堆叠式流动(?)和博客阅读,我仍然无法完全解决这个问题。希望这个专家社区能够救援!
给定:具有现场表情的公司课程(公司可以有很多地址)。每个地址都有一些简单的字符串字段。
精简版:
我希望用户能够向公司添加任意数量的地址。首先,我想显示一组地址文本框,然后显示一个“添加另一个地址”按钮。 JavaScript没问题,而是MVC部分。如果不清楚,该功能应该与此相似:http://www.mdelrosso.com/sheepit/index.php?lng= en_gb&sec=demo3
我需要使用MVC EditorFormodel()函数,这意味着所有配置都需要在编辑器模板中进行。
到目前为止的状态:
- 为编辑公司页面(CompanyViewModel)创建ViewModel
- 添加[uihint(“ addresses”)]到“公共Icollection地址”字段{get;放; }
- 创建的地址EditorteMplate
在添加新公司时,在地址editortemplate中,通过的模型是无效的(那里并不令人惊讶)。如何为额外地址创建编辑器?我尝试了多个化身(使用剃须刀):
@Html.EditorFor(m => new Address());
但是Aint能够产生甚至可以远程工作的任何东西。 (上面的确切行给出了错误“模板只能与字段访问,属性访问,单维数组索引或单参数自定义索引器表达式一起使用。”)
感谢您的任何指示!
/胜利者
解决方案
这是当前API的缺点。您可以做的一种方法是制定负责生成插入表格的儿童行动
在您的控制器中:
[ChildActionOnly]
public ActionResult AddAddress() {
return View(new Address()); // pass an instance so view works
}
添加新视图 AddAddress.cshtml
@model Address
@Html.EditorForModel()
然后在您的编辑模板中使用
@Html.Action("AddAddress")
不隶属于 StackOverflow