2016-12-20 9 views
0

を入れて、私は化するJsonResult機能はMVCでは、未知の辞書項目

$.ajax({ 
    url: "/Ajax/Admin/Hardware/SaveCard", 
    type: "POST", 
    accept: "application/json", 
    data: { Data: [], IDPC: 5 }, 
    success: function (Response) { } 
}); 

のようにjqueryのを介してデータを投稿する場合、私は機能

 
[HttpPost] 
public JsonResult SaveCard(Dictionary<string, Dictionary<string, string>> Data, int? IDPC) 
{ 
    return Json(new { Data = Data, IDPC: IDPC }); 
} 

を持って次に返します

{"Data":{"controller":{},"action":{}},"IDPC":5} 

は、問題を参照してください? Ajaxは配列が空の場合にDataパラメータを送信しないため、IDPCパラメータのみを送信し、SaveCardは1つのパラメータのみを取得し、2つ目はnullにすることができますが、そうではありません。私は今なぜ、なぜコントローラとアクションのようなデータパラメータ項目を持っていないのですか?ヘルプ

答えて

0

MVCパーサーの

おかげでコントローラ名とアクション名が含まれているのparams辞書を、解析しようとします。

あなたは空の辞書を送信する場合は、明示的にNULL値を設定する必要があります。

$.ajax({ 
    url: "/Ajax/Admin/Hardware/SaveCard", 
    type: "POST", 
    accept: "application/json", 
    data: { Data: null, IDPC: 5 }, 
    success: function (Response) { } 
}); 

は、これは空の辞書に解析されます。

+0

Dataパラメータをnullに設定すると、「パラメータはnullにできません。パラメータ名:キー」というエラーメッセージが表示されます。 – user1173536

関連する問題