ASP MVC路线没有开火

时间:2013-05-20 23:28:50

标签: asp.net asp.net-mvc routes

我在使路由正常工作时遇到了一些麻烦。我需要支持IIS 5.1,所以我想用.mvc后缀控制器,这是我目前所拥有的:

routes.MapRoute(
            name: "Default",
            url: "{controller}.mvc/{action}",
            defaults: new { controller = "App", action = "Home" }
        );

这失败了。如果我删除.mvc,它按预期工作。此外,奇怪的是,如果我在控制器和动作之间添加另一条路径,它就可以工作。像这样:

routes.MapRoute(
            name: "Default",
            url: "{controller}.mvc/Anything/{action}",
            defaults: new { controller = "App", action = "Home" }
        );

有谁知道这个的原因?

提前致谢, 莱恩。

2 个答案:

答案 0 :(得分:1)

我尝试使用以下代码

    public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

它正常工作。请在您的申请中尝试这些代码。

答案 1 :(得分:0)

IIS可能将请求视为静态文件,或者另一个处理程序正在接收和处理请求。

如果是这种情况,您需要在IIS中为 .mvc 扩展添加处理程序映射,并确保它使用ASP.NET。