[英]ASP.NET MVC Routing System
我試圖了解 MVC 路由是如何工作的,但似乎我在此過程中迷路了。
我在Global.asax
文件中定義了兩條路由如下
routes.MapRoute("Public", "Public/{controller}/{action}", new { controller = "Home", action = "Index" });
routes.MapRoute("ShopSchema2", "Shop/OldAction", new { controller = "Home", action = "Index" });
我的問題——這可能很簡單:
"~/Public/Account/Register"
,它會通過Register
操作轉到Account
控制器。 為什么第一段(公共)不作為控制器的值?"~/Shop/OldAction"
,它會通過Index
操作轉到Home
控制器。 請描述。{
和}
中提到的任何內容作為段變量。您已將“公共”作為固定短語放在下面的代碼中:
Public/{controller}/{action}"
通常那里沒有“公共”。 如果你想讓公共動態,你必須把它放在 {public} 之類的括號中,並在以下代碼中為“公共”添加功能:
{ controller = "Home", action = "Index" });
{ controller = "Home", action = "Index", public="None" });
在第二行中,您將一個名為“Public”的變量傳遞給 actionresult,默認情況下它帶有一個字符串值“None”,並且可以根據您替換 public 的內容進行更改。
再說一次,在控制器變量之前放置任何變量並不常見。
{ } 中的任何內容都作為一個變量,它采用默認值,可以根據用戶輸入的地址進行更改。
routes.MapRoute("ShopSchema2", "Shop/OldAction", new { controller = "Home", action = "Index" });
上面的代碼默認轉到主頁/索引。 你沒有在那里設置任何變量。
我希望這能回答所有 3 個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.