如何为同一ViewModel使用不同的DisplayTemplates?

时间:2011-10-17 15:14:51

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

我需要两个不同的DisplayTemplates用于同一个ViewModel。一个用于在常规页面上显示ViewModel,另一个用于在打印页面上显示ViewModel。我的ViewModel都是从一个基本模型派生出来的,而DisplayFor在我给它一个基本模型的List时会计算出要使用的DisplayTemplate。

据我所知,DisplayFor在DisplayTemplates文件夹中查找一个文件名,该文件名等于它已传递的模型类型。我不能有多个同名文件。

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:6)

DisplayFor超载,允许您传递模板名称。如果您通过在型号名称后面添加Print来命名打印模板,则可以像这样调用打印模板:

@Html.DisplayFor(x => x.MyModel, "MyModelPrint")