次のように、viewModel を使用して AJAX を使用してデータを ASP.NET MVC コントローラーに投稿しようとしています。
public class FunkyThingUpdateModel
{
public int FunkyThing_ID{get;set;}
public string Name{get;set;}
public IDictionary SizesAvailable{ get; set;}
}
残念ながら、モデル バインダーを IDicationary にバインドするのに苦労しています。コントローラーに渡された JSON に が含まれているsizesAvailable
場合null
、コントローラー メソッドは正常に呼び出されます。ただし、sizesAvailable にデータがある場合、内部サーバー エラー 500 が発生します。
私のJSONは次のようにフォーマットされています:
{"FunkyThing_ID":1,"Name":"Pogo Stick","SizesAvailable":{"1":"Extra
Large","2":"Extra Tiddly"}}
わからないのは、何か不可能なことをしようとしているのかということです。IDictionary にバインドする方法はありますか? そうでない場合、最良の代替手段は何ですか?
それとも、JSON を別の方法でフォーマットする必要があるだけですか?
ここで同様の質問をいくつか見つけましたが、それらのほとんどはかなり古いものです。
私が使用しているMVC 4でこれが可能であるという兆候がいくつかあったようですが、コンテキストを誤解していた可能性があります。