如何在ASP.NET MVC应用程序中使用多个视图引擎

时间:2008-12-10 17:19:24

标签: asp.net-mvc brail

我想在我的asp.net mvc web应用程序中使用两个视图引擎。 第一个是来自MVCContrib项目的Brail视图引擎,另一个是用于生成javascript代码的自定义视图引擎。 但是,我无法将应用程序配置为使用两个引擎。我想使用视图文件扩展名来识别哪个引擎应该处理请求 - .brail用于Brail发动机 - .json - 用于我的自定义引擎

当我在global.asax.cs中向ViewEngines集合添加两个引擎时,系统总是在寻找* .brail视图,如果找不到,则抛出异常。它从不寻找我的* .json视图...... 这是ASP.Net mvc框架,Brail视图引擎还是我的代码的问题?该如何处理?

2 个答案:

答案 0 :(得分:3)

Like this.

编辑:如果你的自定义ViewEngine没有处理* .json,你的视图引擎可能会有一个错误。处理此问题的最简单方法是子类型VirtualPathProviderViewEngine并在构造函数中设置MasterLocationFormats,ViewLocationFormats和PartialViewLocationFormats。有关一个非常简单的示例,请参阅WebFormViewEngine的源代码。通过这种方式,框架代码可以为您完成所有工作。

答案 1 :(得分:2)

我相信你可以在控制器中更改你的视图引擎。所以我会扩展你的控制器以扩展选择一个视图引擎。