我很喜欢 MVC 2.整个过程非常适合网络.
然而,有一项功能,我无法哄骗这个Html.DisplayFor()功能:
<@ Page Inherits="ViewPage<IEnumerable<Foo>>">
<% foreach(var item in Model) { %>
<%: Html.DisplayFor(item.BarBaz) %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
我需要能够使用DisplayTemplate来获取此值.有没有办法做到这一点?
Joh*_*zen 68
实际上,我想通了.我真傻.
这有效:
<@ Page Inherits="ViewPage<IEnumerable<Foo>>">
<% foreach(var item in Model) { %>
<%: Html.DisplayFor(m => item.BarBaz) %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
sgr*_*usa 12
您可以通过远离foreach并使用常规for循环来完成它:
<% for (int i = 0; i < Model.Count(); i++) { %>
<%: Html.DisplayFor(p=> p.ElementAt(i).BarBaz) %>
<%} %>
Run Code Online (Sandbox Code Playgroud)
另一个选择是创建一个PartialView,它接受一个Foo对象,只显示你想要的信息.
<% foreach (var item in Model)
{
Html.RenderPartial("FooBarBazLine", item);
} %>
Run Code Online (Sandbox Code Playgroud)
这是一个老问题,但我想有人可以从我的解决方案中获益:
Aspx视图
<%@ Page Inherits="ViewPage<IEnumerable<Foo>>" %>
<% foreach (var item in Model) { %>
<%: Html.DisplayFor(m => item) %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
剃刀视图
@model IEnumerable<Foo>
@foreach (var item in Model)
{
Html.DisplayFor(m => item)
}
Run Code Online (Sandbox Code Playgroud)
由于DisplayFor接受隐式类型的lambda,我们可以直接指示要在循环中显示的实例.
最后,我同意Anders E. Andersen对模板使用的回答
| 归档时间: |
|
| 查看次数: |
20967 次 |
| 最近记录: |