在View中添加许多EditorTemplate实例

时间:2012-06-27 17:47:04

标签: c# asp.net-mvc-3 razor

我在MVC3项目中有一个Create视图页面来创建Church模型的实例。 Church包含我希望用户能够随视图添加的Contact元素列表。

我有一个适用于Contact类型的EditorTemplate,但是现在该视图只允许用户添加一个实例。我想创建一个链接,为添加另一个Contact添加必要的输入(我也可能也添加删除功能)。

现在我只有:

<div class="editor-label">
    @Html.LabelFor(model => model.Contacts)
</div>
<div class="editor-field">
    @Html.EditorFor(model => model.Contacts)
</div>

我看到一个网站,虽然它解释了EditorTemplates(我认为他用电话号码作为例子),但我无法在任何地方找到它。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你一定要阅读this blog post。它说明了如何实现这一目标。它解释了当您开始实现此问题时可能遇到的困难,因为默认模型绑定器在绑定集合时使用的wire format以及您需要遵守的索引。使用javascript添加/删除动态输入字段时,您仍需要遵守此格式。因此,本文中采用的方法使用 Non-Sequential Indices 约定,将其封装到可重用的Html.BeginCollectionItem帮助器中。

这篇博客文章很棒,因为它可以让你理解和学习很多关于模型绑定器在ASP.NET MVC中的工作方式以及它用来绑定到集合的不同约定。如果你对这篇博文很了解,你已经知道了30%的ASP.NET MVC框架。它涵盖了许多重要概念。