我正在寫一個使用MVC區域的MVC應用程序。目前我們在我們的展示區域使用以下路線:MVC路由可以處理的參數數量是否有限制?
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Display_default",
"Display/{controller}/{action}/{id}/{id2}/{id3}/{*id4}",
new { action = "Index", id = UrlParameter.Optional , id2 = UrlParameter.Optional, id3 = UrlParameter.Optional }
);
}
而且這個工作正常。然而,我們發現了有6個參數的控制行動的必要性:
public ActionResult _MyMethod(string id, string id2, string id3, string id4, string id5, string id6)
,我們發現我們可以在URL中的第四ID就是串連成4 ID參數後添加此我們當前的設置,但是任何參數。
我們試圖延長路線接受的,我們需要像這樣的參數數目:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Display_default",
"Display/{controller}/{action}/{id}/{id2}/{id3}/{id4}/{id5}/{*id6}",
new { action = "Index", id = UrlParameter.Optional , id2 = UrlParameter.Optional, id3 = UrlParameter.Optional }
);
}
但是,使用這條路線的頁面不再加載。
是否MVC路由有一些類型的CAP可以映射到參數的數量?我們還發現,如果我們將映射參數的數量縮減爲id,id2和id3,它將再次起作用,並將所有溢出連接到id3。
有沒有人有這方面的任何信息?
你可以有你想要的(最多,你會超出查詢字符串限制,並拋出一個異常點) 。但只有最後一個參數可以標記爲'UrlParameter.Optional' –
好的,所以在我的情況之上爲什麼它不會允許我需要的6個參數? –
你是否刪除了所有'UrlParameter.Optional'。你爲什麼用'{* id6}'標記第六個? –