0

我在让我的路由正常工作时遇到了一些麻烦。我需要支持 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" }
        );

有谁知道这是什么原因?

在此先感谢,瑞安。

4

2 回答 2

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 }
            );            
        }

它工作正常。请在您的应用程序中尝试这些代码。

于 2013-05-21T04:38:23.220 回答
0

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

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

于 2013-05-21T02:56:28.667 回答