1
http://blogs.msdn.com/b/simonince/archive/2011/02/02/asp-net-mvc-3-optional-parameter-routing-issue.aspxASP.NET MVC 3可選參數路由問題
上述網站中提到的解決方法是可以接受的。但是如果最後一個參數不是可選的,前兩個在MVC3中是可選的,會發生什麼?任何人都可以知道解決方法。這只是一個令我困惑的疑問。
http://blogs.msdn.com/b/simonince/archive/2011/02/02/asp-net-mvc-3-optional-parameter-routing-issue.aspxASP.NET MVC 3可選參數路由問題
上述網站中提到的解決方法是可以接受的。但是如果最後一個參數不是可選的,前兩個在MVC3中是可選的,會發生什麼?任何人都可以知道解決方法。這只是一個令我困惑的疑問。
在MVC3路由定義中,只有最後一個參數可以是可選的。正如Nat提示的那樣,您可以爲同一個控制器操作方法創建多個路由。
如果你想有一個必要的參數和2個可選的參數,你可以定義多個路線:
...MapRoute(null, "static-segment/{required}/{optional1}/{optional2}",
new { controller = "ControllerName", action = "ActionName",
optional2 = UrlParameter.Optional });
...MapRoute(null, "static-segment/{required}/{optional1}",
new { controller = "ControllerName", action = "ActionName",
optional1 = UrlParameter.Optional });
...MapRoute(null, "static-segment/{required}/{optional2}",
new { controller = "ControllerName", action = "ActionName",
optional2 = UrlParameter.Optional });
擁有一個單一的路線,其中有2個可選的參數是你不能做MVC3。另外,有一個可選參數出現在路由中的必需參數之前是您在MVC3中無法做到的。您需要充實所有的路由模式場景,並創建符合URL架構中每個案例的路由。
如果是這樣,你會如何定義你的url模式?如果模式可以與衆不同,您應該將其映射爲另一個路由條目 – Nat 2012-01-04 04:30:56