jquery を使用して辞書をコントローラー アクションに投稿しています。
クライアント側のコード:
var dict = {};
// var dict = {"type": "type-1"}; // this works fine
$.post('/MyController/MyAction?id=' + jsId + '&data=' + jsData, { additionalFields : dict }, function () { //some callback });
サーバー側コード:
public ActionResult MyAction([FromUri]Guid id, [FromUri]string data, [FromBody]Dictionary<string, string> additionalFields)
{
//some code
return RedirectToAction("Index");
}
追加のデータがなく、dict 変数が空の場合、サーバー側で奇妙なデータを受け取ります: additionalFields ディクショナリには 2 つのエントリが含まれます。
コントローラー: MyController
アクション: MyAction
どうすれば修正できますか?
空の辞書を投稿しているときにサーバー側のデータを示す図を次に示します。