0

我在MVC 5中有幾個區域,每個區域都有它自己的HomeController。 所以URL看起來像:MVC 5區域隱藏主頁控制器在URL中

/domain/{area}/{controller}/{action}/{id} 
/domain/myarea/home/myaction 

是否有可能配置的路由來隱藏每個區域的家居控制器的名字嗎?所以URL應該如下所示: /domain/myarea/myaction - 指向當然的區域中的家庭控制器。

謝謝, Alex。

+0

您可以在routeconfig.cs文件中映射新路由。新的路由將只包含action的參數,並確保更具體的路由被放置在routeconfig.cs的最高優先級上 –

回答

0

您應該能夠更新區域註冊的路由模式以刪除控制器名稱。

例如:

public class EventsAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Events"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Events_default", 
      "Events/{action}/{id}", 
      new { action = "Index", controller = "Home", id = UrlParameter.Optional }, 
      new string[] { "MyProject.Areas.Events.Controllers" } 
     ); 
    } 
} 

現在請求yourSite/Events/Details/23將在您的活動區域返回的HomeController的詳細操作方法。