[英]ASP.NET MVC4 Routing - Multiple routes to the same location
我正在設置單頁應用程序(SPA),並且想設置當前兩條路由。 例如:
http://localhost
這是需要身份驗證的默認路由(管理區域) http://localhost/<client>/<clients project name>/
-不需要身份驗證(僅查看) 在管理區域中,他們設置了<client>
和<clients project name>
,因此我知道我需要在MVC4路由中設置此配置,但是我不清楚我將如何處理它。
另一個警告是,如果未在URL中輸入<clients project name>
,它將顯示該客戶端的搜索頁面。
關於MVC中路由的一大優點是能夠將任何內容路由到任何地方,而無論url是否與控制器和操作方法的名稱匹配。 RouteConfig允許我們注冊特定的路由來滿足此需求。 讓我向您展示如何實現這一目標。
路線1:
這由路由配置中的默認路由處理。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home",
action = "Index",
id = UrlParameter.Optional });
點擊http://localhost
將帶您進入Home
控制器和Index
操作方法。
路線2:
我們可以設置一條路由來滿足http://localhost/<client>
和http://localhost/<client>/<clients project name>
routes.MapRoute(
"Client",
"{client}/{title}",
new { controller = "Home",
action = "Client",
title = UrlParameter.Optional });
點擊http://localhost/bacon
或http://localhost/bacon/smokey
將帶您進入Home
控制器和Client
操作方法。 注意title
是一個可選參數,這是我們如何使兩個URL都可以在同一路由下工作的方式。
為了使它在控制器端起作用,我們的操作方法Client
需要看起來像這樣。
public ActionResult Client(string client, string title = null)
{
if(title != null)
{
// Do something here.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.