2013-05-09 15 views
0

我正在開發一個管理面板,並且我創建了一個名爲「Admin」的新區域來啓動。現在,在我的AdminAreaRegistration.cs文件路由就是這樣在.NET MVC4中路由正確的方式

context.MapRoute(
    "Admin_default", 
    "Admin/{controller}/{action}/{id}", 
    new { controller = "Index", action = "Index", id = UrlParameter.Optional } 
); 

這樣我就可以達到與HTTP的管理面板:// {} MYDOMAIN /管理/

而且我有2個控制器。 的IndexController管理登錄,登入等 UserController的管理上市用戶,添加新用戶,等

當我試圖訪問用戶的列表中的網址會像以http:// {} MYDOMAIN /管理員/用戶/列表/這是很好看的網址。但是,當我嘗試訪問新的管理員登錄時,網址將如下所示: http:// {mydomain}/Admin/Index/Signin/

但我不喜歡第二個網址。我可以像http:// {mydomain}/Admin/Signin /和其他第一個那樣訪問索引控制器。

你會如何處理這種情況?我真的想這樣做的正確的方式

回答

1

對於您的登錄網址,如果你在你的IndexController一個簽到操作設置,建立一個路由你這樣的「Admin_default」路線前:

context.MapRoute(
    "Admin_Signin", 
    "Admin/SignIn", 
    new { controller = "Index", action = "Signin" } 
); 

然後,您可以鏈接到這個行動ActionLinks像這樣:

@Html.ActionLink("Sign-in here", "Signin", new { controller = "Index", action = "Signin" }) 
+0

+1 - 可你也教我如何用我的新的藍光播放器 - 我不能讀的指示被人打擾。 – LiverpoolsNumber9 2013-05-09 13:45:48