【发布时间】:2011-11-16 09:59:59
【问题描述】:
我有一个从 WebFormViewEngine 派生的自定义视图引擎。这里有很多东西,主要是缓存。我希望能够同时使用 WebFormViewEngine 和 RazorViewEngine,这可能吗?理想情况下我愿意这样做;
ViewEngines.Add(new MyViewEngine<WebFormsViewEngine>());
ViewEngines.Add(new MyViewEngine<RazorViewEngine>());
如果存在 .ascx/.aspx/.master 文件,则使用 WebForms,否则使用 Razor 是存在 .cshtml 文件。
编辑:我应该更好地措辞我的问题。由于我的自定义视图引擎从 WebFormViewEngine 派生,它显然使用 WebForms,我不能从两个类派生。我可以从 RazorViewEngine 派生,但随后我将失去 WebForms。我可以完全复制我的代码,从 RazorViewEngine 派生并编辑视图文件扩展名等,但正如我所说,我的视图引擎中有很多自定义代码,并且会复制数百行。
WebFormViewEngine 和 RazorViewEngine 派生自 BuildManagerViewEngine,后者又实现了 IViewEngine。问题是我必须实现方法 CreatePartialView() 和 CreateView() 但是我怎么知道使用泛型返回什么(WebForms/Razor?)?
【问题讨论】:
-
我已经编辑了我的问题,我觉得我不够清楚。
标签: c# asp.net-mvc-3 razor webforms