ASP.NET MVC3 EditorFor in Form,用于具有固定长度数组的模型

时间:2012-01-09 16:22:10

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

对于有限数量的集合进行建模并使用Razor显示Web表单,最简洁,最流行的ASP.NET MVC3方式是什么,因为缺少更好的术语?

我知道我可以在模型中抛出一个List并在视图中循环它,但这不会以任何方式自动告诉EditorFor渲染有限数量的文本框或者我想要的任何内容。

是否有更自动的方法来构建一个与Razor视图一起工作的视图模型,以告诉它我的集合中我想要多少项,因此它可以自动呈现正确数量的表单元素?

3 个答案:

答案 0 :(得分:1)

建议使用列表作为视图的模型。它简单,干净,高效。

您可以创建用于呈现列表的EditorFor模板,但它们与视图基本相同,但由于模板系统而增加了一些开销。

答案 1 :(得分:1)

如果我们讨论的是少量简单数据类型,那么实际上(尽管不是最想听到的答案)是模型中每个项目的实例都应该有一个字段。因此,对于5个工资,你的模型中会有salary1,salary2等。

如果您想稍微抽象一下 - 并且使其更能抵抗更改/处理更大的数字等,您可以将一些自定义元数据附加到字段,指示您想要的值的数量。然后,您需要一个帮助器或自定义模板(或组合)来获取元数据并呈现正确数量的输入字段(使用正确的名称,id等)。

答案 2 :(得分:1)

我真的不明白你的问题是什么。你为什么要限制它?你只需在列表中放入许多记录,这就是它将呈现的数量。如果您只需要列表中的5条记录,您是否会不确定列表中是否只包含5个元素?不。同样适用于您的观点。