2015-09-30 99 views
1

我需要從我的項目的URL中刪除控制器'Home',現在它看起來像這樣:example.com/Home/contact,我希望它看起來像這樣:example.com/contact(也可用於服務,我們的團隊,圖庫等其他部分)從MVC 5的URL中刪除controller'Home'

我試圖刪除出現在{動作}/{id}之前的'{控制器}' RouteConfig.cs代碼,像這樣:

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

     routes.MapRoute(
      "Default", 
      "{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
    } 
} 

而且控制器「家」從URL中消失,但以下鏈接登錄和管理不工作:

@Html.ActionLink("Login here", "Login", "Account") 
@Html.ActionLink("Manage website", "Index", "Manage") 

如何讓這些鏈接無需在URL中顯示控制器'Home'?

+0

您需要爲這些控制器路由添加一條附加規則。請參閱https://msdn.microsoft.com/en-us/library/cc668201.aspx – Jasen

回答

2

你需要以下添加到您的RouteConfig.cs

routes.MapRoute(
     name: "contact", 
     url: "contact", 
     defaults: new { controller = "Home", action = "Contact" } 
    ); 

確保「默認」路由映射是最後一個。