我最近将我的项目从 MVC3 升级到 MVC4,从那时起,我的一些操作参数被错误地传递。
该操作具有以下签名:
public JsonResult FooAction(int id, int id2, string name, string name2, List<Object1> templates, Dictionary<string, string> dictionary1, Dictionary<string, List<string>> dictionary2);
如果 JSON 调用传递一个空数组:
"dictionary2":[]
然后dictionary2
设置为路线:
{key = "controller", value = "MyController"}
{key = "action", value = "MyAction"}
{key = "id", value = "123123"}
显然我希望它只是一本空字典 - 有什么办法可以防止这种行为吗?
[编辑] 我应该提到我正在使用默认路由行为:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);