0
在我的ASP.NET MVC 4移動應用程序,我有一個路線定義爲:具有多個可選參數的RouteTable.Routes.GetVirtualPath()錯誤?
routes.MapRoute(
name: "GraveNavigation",
url: "Unites/{development}/{field1}/{field2}/{field3}/{field4}/{field5}", //each development have unique location hierarchy. One may have Section/Block/Path/Lot/Unit, another may only have Block/Lot/Unit.
defaults: new
{
controller = "Unit",
action = "Index",
development= UrlParameter.Optional,
field1 = UrlParameter.Optional,
field2 = UrlParameter.Optional,
field3 = UrlParameter.Optional,
field4 = UrlParameter.Optional,
field5 = UrlParameter.Optional
}
);
如果我使用的方法在此頁面中,我總是會得到一個空VDP如果我有超過四(4 )可選參數。因此,與"Unites/{development}/{field1}/{field2}/{field3}"
,它工作正常,我得到一個有效的VirtualPathData
。一旦我有"Unites/{development}/{field1}/{field2}/{field3}/{field4}..."
作爲路由URL,RouteTable.Routes.GetVirtualPath
總是返回null。
如果我使用@Url.RouteUrl
實用上來看,我可以構造一個標籤,但同樣的問題:
var v = oneLevelInTheHierarchy;
<a href='@Url.Action("Index", new { cemetery = v.development, field1 = v.field1, field2 = v.field2, field3 = v.field3, field4 = v.field4 })'>@v.Name</a>
這需要時間來找出並有網上非常有限的討論。因此,如果asp.net 4路由支持4個以上的可選參數,這會讓我感動嗎?
或者如果我錯誤地使用該方法?