1

我有一个 MVC4 网站在 dev 上运行良好。尝试发布到生产路由时不起作用。我唯一的规则是默认规则:

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "General", action = "Index", id = UrlParameter.Optional }
        );

但是,在生产服务器(IIS7.5 - 就像 dev)上,以下任何一项在 404 上都会失败:

<domain>/Home
<domain>/Home/Index

普通<domain>/在 403 上失败。

注意:所有这些都在使用路由调试器时

在玩耍时,我偶然发现了以下好奇心:

<domain>/Home/Index.cshtml/3

居然把我带到了路由调试页面,声称匹配上

controller  Home
action      Index.cshtml 
id          61 

更多的播放表明“.cshtml”在哪里并不重要,只要它在那里就可以工作。例如<domain>/.cshtml/Index/4匹配

controller  .cshtml 
action      Index 
id          4

为什么它需要一个“.cshtml”字符串,我能做些什么呢?

4

0 回答 0