将以".cshtml"结尾的请求路由到控制器

Joh*_*zen 4 iis routing asp.net-mvc-3

(这是交叉发布到ASP.NET表单)

我正在研究WebGit .NET项目,我们接近"1.0"版本.但是,我无法使用"浏览"控制器(将文件从存储库中取出)来提供".cshtml"文件.

我最初也遇到了".config"和".cc"文件的问题,但我在web.config中修复了这个问题:

  <location path="browse">
    <system.webServer>
      <security>
        <requestFiltering>
          <fileExtensions allowUnlisted="true">
            <clear />
          </fileExtensions>
          <hiddenSegments>
            <clear />
          </hiddenSegments>
        </requestFiltering>
      </security>
    </system.webServer>
  </location>
Run Code Online (Sandbox Code Playgroud)

应该处理此请求的路由(成功路由其他所有内容)是:

routes.MapRoute(
    "View Blob",
    "browse/{repo}/blob/{object}/{*path}",
    new { controller = "Browse", action = "ViewBlob", path = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)

现在,每当我尝试访问以".cshtml"结尾的URL时,即使我的请求应该由"浏览"控制器处理,它也会给出404.我正在服务的文件不存在于磁盘上,而是作为blob从git存储库中提取.我尝试过的每个其他文件扩展名都可以.

我该如何解决这个问题?


编辑:我试过像这样禁用WebPages:

<appSettings>
  <add key="webpages:Enabled" value="false" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.

小智 6

作为一种快速解决方法,您可以在应用程序根目录下放置一个临时的browse.cshtml文件并将其放入您的web.config中,添加key ="webpages:Enabled"value ="false"