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

Ken*_*nci 1 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

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

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

我怎么解决这个问题?

谢谢!

cou*_*ben 6

有一个重载DisplayFor允许您传递模板名称.如果通过Print在模型名称后添加来命名打印模板,则可以像这样调用打印模板:

@Html.DisplayFor(x => x.MyModel, "MyModelPrint")
Run Code Online (Sandbox Code Playgroud)