你如何为ASP.NET MVC编写自己的View引擎?

时间:2008-12-27 12:36:34

标签: asp.net-mvc viewengine

我知道ASP.NET MVC允许我交换其他人创建的各种View引擎,但我想知道如何创建自己的View引擎?

更多信息: 我们有自己的基于网络表单的CMS,关于MVC的主要卖点是它为我们提供了更清晰的HTML(我们的设计师会喜欢)。但是,我们希望创建自己的特定于域的View实现。

3 个答案:

答案 0 :(得分:5)

好的,我做了一些Google-fu并找到了这些帖子:

Adding support for skins in an ASP.NET MVC application

Partial Rendering & View Engines in ASP.NET MVC

我想我可以从这些人的说法中解决这个问题 - 我只是希望它仍适用于最新的ASP.NET MVC drop!

编辑:关于使用VB.NET XML literals for a view engine的帖子也不错。

答案 1 :(得分:3)

这太简单了,这就是我所做的:

  1. 创建一个派生自VirtualPathProviderViewEngine的类(实际上,您只需复制WebFormsViewEngine并稍微编辑它)。
  2. 创建一个从IView派生的类。只有一种方法 - 把你的魔法放在这里。
  3. 在Global.asax.cs中:

    ViewEngines.Engines.Add(new MyEngine());

答案 2 :(得分:2)

查看http://mvccontrib.org/以查看不同ViewEngines的几个示例。包括4个(好的,减去一个已经过时但代码仍然可用)