最近、プロジェクトを 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 = "" }
);