2017-07-18 50 views
0

你好,我在我的項目中有管理員區域。 AreaRegistration是默認ASP.NET MVC Url.Action刪除控制器和安全名稱

public class AdminAreaRegistration : AreaRegistration 
{ 
    public override string AreaName => "Admin"; 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "admin/{controller}/{action}/{id}", 
      new { action = "Index", controller = "Dashboard", id = UrlParameter.Optional } 
     ); 
    } 
} 

當我使用Url.Action("Index", "Dashboard")返回/admin,但我想得到這樣admin/{controller}路徑所以它必須是/admin/dashboard。但是,當用戶瀏覽到/admin它需要重定向到/admin/dashboard

所以我需要的是

1)Url.Action("Index", "Dashboard")將返回/admin/dashboard

2)用戶導航到/admin將他重定向到/admin/dashboard

是有沒有辦法做到這一點與MVC路由?

+0

如果你只有在該區域幾個控制器,然後刪除默認的一個,並添加特定項爲每一個。 –

回答

0

一如既往地張貼在經過這麼解決方案發現自己

的解決方案是使用Url.RouteUrl("Admin_Dashboard")和路由

context.MapRoute(
      "Admin_Dashboard", 
      "admin/dashboard", 
      new { action = "Index", controller = "Dashboard", id = UrlParameter.Optional } 
     );