2

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

どうすれば修正できますか?

空の辞書を投稿しているときにサーバー側のデータを示す図を次に示します。 変

4

2 に答える 2

1

ディクショナリに値が含まれていない場合は、サーバーに投稿する前に dict を null に設定してみてください

dict = null;
于 2012-12-05T10:45:24.647 に答える
0

ModelBinder が「Post」リクエストの本文でデータを選択したようです。なぜ [FromBody] 属性が必要なのですか?

削除してみてください。問題が解決するはずです。

于 2012-12-05T10:52:27.910 に答える