【发布时间】:2008-12-27 12:36:34
【问题描述】:
我知道 ASP.NET MVC 将允许我交换其他人创建的各种视图引擎,但我想知道如何创建自己的视图引擎?
更多信息: 我们有自己的基于 Web 表单的 CMS,而 MVC 的主要卖点是它为我们提供了更清晰的 HTML(我们的设计师会喜欢的)。但是,我们希望创建自己的特定于域的 View 实现。
【问题讨论】:
我知道 ASP.NET MVC 将允许我交换其他人创建的各种视图引擎,但我想知道如何创建自己的视图引擎?
更多信息: 我们有自己的基于 Web 表单的 CMS,而 MVC 的主要卖点是它为我们提供了更清晰的 HTML(我们的设计师会喜欢的)。但是,我们希望创建自己的特定于域的 View 实现。
【问题讨论】:
好的,我做了一些 Google-fu 并找到了这些帖子:
Adding support for skins in an ASP.NET MVC application
Partial Rendering & View Engines in ASP.NET MVC
我想我可以从这些人所说的中得出结论——我只是希望它仍然适用于最新的 ASP.NET MVC 版本!
编辑:还有一篇关于使用VB.NET XML literals for a view engine 的好帖子。
【讨论】:
太简单了,我就是这样做的:
创建一个从 VirtualPathProviderViewEngine 派生的类(实际上,你可以复制 WebFormsViewEngine 并稍微修改一下)。
创建一个从 IView 派生的类。只有一种方法 - 把你的魔法放在这里。
在 Global.asax.cs 中:
ViewEngines.Engines.Add(new MyEngine());
【讨论】:
查看http://mvccontrib.org/ 了解不同 ViewEngine 的几个示例。包括 4 个(嗯,减去一个已过时但代码仍然可用的)
【讨论】: