0

我有家庭控制器和索引操作方法。以下网址有效

http://localhost/home/index

是否有可能使它像下面一样工作

http://localhost/index.aspx

我正在 Global.asax 中尝试下面的代码,但不起作用

routes.MapPageRoute("MyPage", "create.aspx", "~/home/create");

路由配置

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

    routes.MapPageRoute("MyPage", "create.aspx", "~/home/create");

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

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

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

2 回答 2

3

您应该使用 MapRoute() 而不是 MapPageRoute(),因为您仍然指的是 MVC 控制器/操作:

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

PS:记得在其他可能最终干扰它的路线之前注册新路线。

于 2013-10-22T17:48:35.523 回答
0

你不能像你正在做的那样为非静态内容MapPageRoute。如果你不想隐藏Controller你的路线,Customized已经这样做了。如果您混合使用 MVC + WebForms,您应该参考本指南来了解如何配置您的路线。

如何:为 Web 表单应用程序定义路由

于 2013-10-22T17:49:40.700 回答