我可以让razor识别.html文件扩展名为自己的吗?

时间:2012-10-07 03:36:09

标签: asp.net-mvc razor

所以我可以使用设计师模式?我更少依靠asp.net mvc html助手,但并不完全放弃它,选择使用普通的html(在设计模式下应该没有问题)而不是

这可能吗?

1 个答案:

答案 0 :(得分:2)

编写自己的View Engine

public class MyRazorViewEngine : RazorViewEngine 
{
    public MyRazorViewEngine() 
{
        base.AreaViewLocationFormats = new string[]
    {
    "~/Areas/{2}/Views/{1}/{0}.html", 
    "~/Areas/{2}/Views/Shared/{0}.html", 
        };
 ....

请参阅System.Web.Mvc.RazorViewEngine以包含其他位置

然后在启动时注册

ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MyRazorViewEngine()));
    RazorCodeLanguage.Languages["html"] = new CSharpRazorCodeLanguage();

以及您的应用程序web.config

的以下内容
<system.web>    
  <compilation debug="true" targetFramework="4.5" >
    <assemblies>
      <add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
    <buildProviders>
      <add extension=".html"          type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
    </buildProviders>
  </compilation>
</system.web>

上升 - 你得到设计师模式,下行 - 你失去了所有剃刀突出显示和智能感知