我曾與路由配置規則,包括一個ASP.Net MVC應用這一個:asp.net MVC路由配置
routes.MapRoute(
"rule1",
"{controller}/{action}/{cid}/{language}/{itemID}/{uid}",
new { controller = "Home", action = "action1" }
, new[] { "MVCApp.Controllers" }
);
我剛添加了新的動作與相同數量的參數和我的路由配置變化如下(規則2加):
routes.MapRoute(
"rule2",
"{controller}/{action}/{cid}/{language}/{phoneNumber}/{uid}",
new { controller = "Home", action = "action2" }
, new[] { "MVCApp.Controllers" }
);
routes.MapRoute(
"rule1",
"{controller}/{action}/{cid}/{language}/{itemID}/{uid}",
new { controller = "Home", action = "action1" }
, new[] { "MVCApp.Controllers" }
);
現在,當我叫http://localhost:51650/Home/action2/1/en/1/1
它沒有路線action1
並拋出異常The parameters dictionary contains a null entry for parameter 'itemID' of non-nullable type 'System.Int64' for method 'System.Web.Mvc.JsonResult action1(System.String, Int32, Int64, Int64)
。
反轉的順序。添加路由的順序影響路由的工作方式。添加第一個rule1,然後添加rule2 – NicoRiff
@NicoRiff我剛剛更新了異常詳細信息。有什麼辦法,信息不會路由到rule2和路由跳過它,並採取行動中的rule1(對於URL http://本地主機:51650 /主頁/操作2/1/en/1/1)? – VSB