经过大量的谷歌搜索,堆叠式流动(?)和博客阅读,我仍然无法完全解决这个问题。希望这个专家社区能够救援!

给定:具有现场表情的公司课程(公司可以有很多地址)。每个地址都有一些简单的字符串字段。

精简版:

我希望用户能够向公司添加任意数量的地址。首先,我想显示一组地址文本框,然后显示一个“添加另一个地址”按钮。 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")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top