我曾与路由配置规则,包括一个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