0

我有家庭控制器和索引操作方法。下面的URL工作如何將mvc路由重寫爲aspx

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

回答

3

您應該使用圖路線()代替的MapPageRoute(),因爲你仍然指的是一個MVC控制器/動作:

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

PS:記得註冊前,其他的可能最終會干擾它的新航線。

0

對於非靜態內容,您不可以使用MapPageRoute。如果你不想隱藏你的路線ControllerCustomized已經這樣做。如果你在混合使用MVC + WebForms,你應該關注這個指南來了解如何配置你的路線。

How to: Define Routes for Web Forms Applications