所以在MVC3测试版中,我正在寻找一种可控制的方式来使用不同于我放在DisplayTemplates文件夹中的显示模板集。
使用stackoverflow作为示例可能最简单地说出我正在尝试做的事情:
在详细信息页面上,您可以想象您将拥有:
Html.DisplayForModel() // Uses the DisplayTemplates/question.ascx
现在在列表页面上显示我想要的所有问题:
Html.SummaryForModel() // Uses the SummaryTemplates/question.ascx
原因是我想要一种简单的方法在一个列表中显示各种对象,而不必在页面中指定要使用的实际模板(使用RenderPartial或其他)。
所以看一下DisplayForModel()的实现,这应该是一个简单的任务 - 但是TemplateHelper全是internal
所以我错过了一些我可以覆盖的其他钩子,或者我是否必须实现自己的版本这个?
答案 0 :(得分:0)
我使用自动网格做了类似的事情,是的,您必须创建自己的帮助程序,循环遍历模型属性,然后使用相应的RenderPartial(“/ yourfilepaths”)进行调用。
您将遇到的问题是,这些内部类会为您提供有关该对象的元数据,并读取UIHint属性和所有爵士乐。实现自己并不难,但需要做一些工作才能正确实现。