【发布时间】:2011-03-23 13:54:58
【问题描述】:
在 MVC3 中,我已经能够依靠 Html.DisplayForModel() 为我的数据生成显示。使用这种方法和各种模板,我有一个视图来显示我的几个模型。不过我想知道的是,有没有办法让它在我的模型的列表上工作?
例如,我有一个名为 Networks 的模型。我列出多个网络的视图如下所示:
@model PagedList<Network>
<div id="networkList">
@Html.Grid(Model).Columns(column => {
column.For(x => Html.ActionLink(x.Id.ToString(), "NetworkDetails", new { id = x.Id })).Named("Network ID");
column.For(x => x.Name);
column.For(x => x.Enabled);
}).Attributes(Style => "text-align: center")
@Html.AjaxPager(Model, new PagerOptions() { PageIndexParameterName="page", ShowDisabledPagerItems = false, AlwaysShowFirstLastPageNumber=true },
new AjaxOptions() { UpdateTargetId = "networkList" })
</div>
我想知道在为我的模型生成列表时是否可以使用单个模板。我可以依靠属性来知道我想在我的列表中生成哪些属性,即:[ListItem]。
让我头疼的是,如何将动态模型传递给扩展方法?如果有任何帮助,Html.Grid 扩展来自 MVCContrib。有没有其他人做过类似的事情?依赖模板会很棒,因为它会真正减少代码量。
【问题讨论】:
-
不确定这是否对您有帮助 - 您可以为您的模型使用 @Html.EditorFor() 并保留一个模板来渲染网络模型。
标签: c# asp.net-mvc-3 mvccontrib