Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates ASP.NET MVC 2:如何为集合中的每个项目调用DisplayFor?_Templates_Asp.net Mvc 2 - Fatal编程技术网

Templates ASP.NET MVC 2:如何为集合中的每个项目调用DisplayFor?

Templates ASP.NET MVC 2:如何为集合中的每个项目调用DisplayFor?,templates,asp.net-mvc-2,Templates,Asp.net Mvc 2,我的模型中有一个集合类型(列表)的属性。我想调用此集合中的每个项目Html.DisplayFor或Html.EditorFor。我该怎么做 编辑它不是强类型视图。这是一个模板视图。在您的视图中只有ViewData.ModelMetadata.类似的内容 <% foreach (var item in Model.MyCollection) { %> <%= html.EditorFor... %> ... <% } %> ... 另请参见

我的模型中有一个集合类型(列表)的属性。我想调用此集合中的每个项目
Html.DisplayFor
Html.EditorFor
。我该怎么做


编辑它不是强类型视图。这是一个模板视图。在您的视图中只有ViewData.ModelMetadata.

类似的内容

<% foreach (var item in Model.MyCollection) { %>
    <%= html.EditorFor... %>
    ...
<% } %>

...

另请参见

最简单的方法是向模型中添加“SelectedItem”属性:

public class YourModel
{

public IEnumberable<Item> YourCollection
{
get;
}


public Item SelctedItem
{
get;
set;
}


}
公共类模型
{
公共IEnumberable集合
{
得到;
}
公共项目选择项
{
得到;
设置
}
}
然后只需将列表中的每个项目分配给selctedItem属性:

<% foreach (var item in Model.YourCollection) { %>   

Model.SelctedItem = item;

<%= html.EditorFor(SelctedItem) %>   
    ...   
<% } %> 

Model.SelctedItem=项目;
...   
你能试试吗

<% foreach (var item in Model.MyCollection) { %>
    <%= html.EditorFor(m=>item) %>
<% } %>

项目)%>

可能重复,但如何在庙宇视图中执行此操作。没有Model.items。只是ViewData.ModelMetadata..如果您的集合在ViewData项中,则类似于
foreach(在(IEnumerable)ViewData[“MyCollection”]中的MyItemType项)
yes,但MyItemType可以是任何东西。。因此,我正在尝试创建模板。。类似于这里,但我不明白表达的东西:-(啊,你困住了我。我不知道你想要的是什么。你可以构建这样的东西,但这不是为胆小的人准备的。他在他的
DisplayForMany
中使用了函子和表达式树。即使你使用了他的函数,你仍然需要为泛型方法指定你的类型。