3

我已经让 .Net MVC3 像处理 .cshtml 文件一样处理 .html(和其他自定义扩展名),但 VS2010 不会突出显示 Razor 语法或为其显示 Intellisense。如何让 VS2010 将 .html 文件识别为 .cshtml?

4

1 回答 1

2

这并不容易。如果您看到asp.net mvc 3 source,您可以在网页文件夹中看到接下来的内容:

文件:RazorDebugHelpers.cs

// Trim the html part of cshtml or vbhtml
string outputExtension = extension.Substring(0, 3);

文件:RazorCodeLanguage.cs

private static IDictionary<string, RazorCodeLanguage> _services = new Dictionary<string, RazorCodeLanguage>(StringComparer.OrdinalIgnoreCase) {
        { "cshtml", new CSharpRazorCodeLanguage() },
        { "vbhtml", new VBRazorCodeLanguage() }
    };

文件:PreApplicationStartCode.cs

WebPageHttpHandler.RegisterExtension("cshtml");
WebPageHttpHandler.RegisterExtension("vbhtml");

等等。

我想说什么?扩展逻辑在 mvc 中很深。如果您想做类似的事情,您可能需要下载源代码、编辑它们并构建自定义库,但这非常耗时。也许你可以通过其他方式问你问题,我希望有更好的解决方案来解决你的问题。

于 2012-08-09T19:31:33.690 回答