经过大量谷歌搜索,stackoverflowing(?)和博客阅读我仍然无法完全解决问题。希望这个专家社区可以来救援!
给定: 具有字段ICollection的公司类(公司可以有多个地址)。每个地址都有一些简单的字符串字段。
我希望用户能够向公司添加任意数量的地址。首先,我想显示一组地址文本框,然后显示“添加一个地址”按钮。 Javascript没有问题,而是mvc部分。如果不清楚,功能应该类似于此: http://www.mdelrosso.com/sheepit/index.php?lng=en_GB&sec=demo3
我需要使用MVC EditorForModel()函数,这意味着所有配置都需要进入编辑器模板。
在Addresses EditorTemplate中,添加新公司时,传入的模型为Null(没有惊喜)。如何为额外地址创建编辑器?我尝试了多种化身(使用Razor):
@Html.EditorFor(m => new Address());
但是即使是远程工作也无法生产任何东西。 (上面的确切行给出错误“模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。”)
感谢您的任何指示!
/维克多
答案 0 :(得分:4)
这是当前API的缺点。你可以做的一种方法是让一个负责生成插入表单的子操作
在您的控制器中:
[ChildActionOnly]
public ActionResult AddAddress() {
return View(new Address()); // pass an instance so view works
}
添加新视图AddAddress.cshtml
@model Address
@Html.EditorForModel()
然后在编辑器模板中使用
@Html.Action("AddAddress")