扩展MVC TemplateHelper / DisplayFor *方法 - 我应该这样做吗?

时间:2010-10-31 23:49:27

标签: asp.net-mvc

所以在MVC3测试版中,我正在寻找一种可控制的方式来使用不同于我放在DisplayTemplates文件夹中的显示模板集。

使用stackoverflow作为示例可能最简单地说出我正在尝试做的事情:

在详细信息页面上,您可以想象您将拥有:

Html.DisplayForModel() // Uses the DisplayTemplates/question.ascx

现在在列表页面上显示我想要的所有问题:

Html.SummaryForModel() // Uses the SummaryTemplates/question.ascx

原因是我想要一种简单的方法在一个列表中显示各种对象,而不必在页面中指定要使用的实际模板(使用RenderPartial或其他)。

所以看一下DisplayForModel()的实现,这应该是一个简单的任务 - 但是TemplateHelper全是internal所以我错过了一些我可以覆盖的其他钩子,或者我是否必须实现自己的版本这个?

1 个答案:

答案 0 :(得分:0)

我使用自动网格做了类似的事情,是的,您必须创建自己的帮助程序,循环遍历模型属性,然后使用相应的RenderPartial(“/ yourfilepaths”)进行调用。

您将遇到的问题是,这些内部类会为您提供有关该对象的元数据,并读取UIHint属性和所有爵士乐。实现自己并不难,但需要做一些工作才能正确实现。