Asp.net mvc 3 ASP.NET MVC3 EditorFor格式,用于具有固定长度数组的模型

Asp.net mvc 3 ASP.NET MVC3 EditorFor格式,用于具有固定长度数组的模型,asp.net-mvc-3,c#-4.0,Asp.net Mvc 3,C# 4.0,由于缺少更好的术语,ASP.NET MVC3中最干净、最高效的方法是什么,用于建模有限计数集合并使用Razor显示web表单 我知道我可以在模型中抛出一个列表并在视图中循环,但这不会自动告诉EditorFor呈现有限数量的文本框或任何我想要的内容 有没有更自动的方法来构建一个视图模型,该模型与Razor视图一起工作,以准确地告诉它我想要在我的集合中包含多少项,从而它可以自动呈现正确数量的表单元素 建议使用列表作为视图的模型。它简单、干净、高效 您可以为呈现列表的模板创建编辑器,但它们本质上与视图

由于缺少更好的术语,ASP.NET MVC3中最干净、最高效的方法是什么,用于建模有限计数集合并使用Razor显示web表单

我知道我可以在模型中抛出一个列表并在视图中循环,但这不会自动告诉EditorFor呈现有限数量的文本框或任何我想要的内容


有没有更自动的方法来构建一个视图模型,该模型与Razor视图一起工作,以准确地告诉它我想要在我的集合中包含多少项,从而它可以自动呈现正确数量的表单元素

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


您可以为呈现列表的模板创建编辑器,但它们本质上与视图相同,因为模板系统会增加一些开销。

如果我们谈论的是少量的简单数据类型,那么事实上(虽然不是大多数人想听的答案)就是在模型中为每个项实例都应该有一个字段。所以对于5份薪水,你的模型中会有薪水1,薪水2,等等


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

我真的不明白您的问题是什么。你为什么要限制它?您只需在列表中放入多少条记录,这就是它将呈现多少条记录。如果一个列表中只需要5条记录,您是否会特意确保该列表只能包含5个元素?不。你的观点也是如此。

你不喜欢
foreach
语法的哪一点?我很喜欢它,如果没有更好的方法,我会用它。我的问题是,使用EditorFor,是否有更自动的方法将模型与固定长度数组或有限数量集合的属性关联起来,以便视图自动显示正确数量的表单元素。因此,在我的情况下,我需要通过五个文本框收集五份工资……在你看来,什么是将清单数量限制为有限数量的最佳方法?我不确定我是否理解你的问题。你想要34个元素中的10个元素从控制器或类似的东西传递过来?这就是我最初做的,薪水1,薪水2,等等。但它只是感觉很笨重,不是吗?每一个都需要完全相同的验证逻辑,而且我还需要将它们验证为一个值的集合,也就是说,您必须输入所有五个值。在所有其他尝试将模型绑定自动化到视图的情况下,我很惊讶这个场景被忽略了……问题是,有没有更多的自动化方法来建模和连接这个场景。我不会告诉那些为我的应用程序编写规范的人,没有理由把这个数字限制在5个以内。这是一个很好的理由。您不知道此web表单的用途,也不需要知道。如果答案是没有更多的自动化方式,那很好,说出来,我会接受。