asp.net-mvc - MVC 3 多个 DisplayFor-Templates

标签 asp.net-mvc display-templates

我正在尝试为购物篮项目列表制作自定义模板。我需要一些不同的模板,因为我有不同的显示项目的方式,这取决于它是在网页上还是在邮件中。现在我的问题是,当我使用默认名称时,它可以完美运行。

@Html.DisplayFor(b => b.Items)

但是,当我尝试添加模板名称时,我期望我的模板需要是列表类型 IEnumerable 而不是 BasketItem。
@Html.DisplayFor(i => basket.Items, "CustomerItemBaseList")

任何我的错误所在或为什么不可能的想法都值得赞赏。谢谢。

最佳答案

不幸的是,这是模板化助手的局限性。如果您为集合属性指定模板名称,则模板不再自动应用于集合的每个项目。可能的解决方法:

@for (int i = 0; i < Model.Items.Length; i++)
{
    @Html.DisplayFor(x => x.Items[i], "CustomerItemBaseList")
}

关于asp.net-mvc - MVC 3 多个 DisplayFor-Templates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833977/

相关文章:

javascript - 为什么我的 TypeScript 伪字典似乎只存储关键字符串?

asp.net-mvc - 使用 ASP .NET MVC 编辑 Kendo UI 网格时重定向

具有 Windows 身份验证的 ASP.NET Web API 自托管

c# - 如何在MVC 4项目中制作显示模板

c# - MVC ViewModel,使用具有某些标记为必需的属性的 VM,具体取决于它是 GET 还是 POST

ASP.NET MVC 查看存储在数据存储中的信息

asp.net-mvc - ASP.Net MVC 中 UIHint 属性的用途是什么

JavaScript/jQuery 不适用于使用 Ajax 加载的编辑器/显示模板

asp.net-mvc - 为集合中的每个项目使用 DisplayTemplate(带有 DisplayFor)