如何将mvc路由重写为aspx

时间:2013-10-22 17:36:56

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 model-view-controller

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

您无法正常执行非静态内容的 MapPageRoute 。如果您不想隐藏Controller的路线,则Customized已经执行此操作。如果您正在混合MVC + WebForms,您应该放弃本指南来了解如何配置您的路由。

How to: Define Routes for Web Forms Applications