2

C# コントローラーに HTTP POST リクエストを送信しようとしていますが、データを配列で送信する必要があるため、JSON.stringify で試しましたが、デバッグを開始すると、コントローラーの入力パラメーターが NULL になりますか? 天気予報の外部 API からリストを受け取っているので、リスト内の項目ごとに新しい変数を作成する必要があります。この変数には、最高気温と最低気温、説明、湿度、気圧などのフィールドがあり、もちろんこれらを入力します。データを含むフィールドを作成し、その変数を配列に追加します。次に、この配列をコントローラーに渡して、データベースに格納できるようにする必要があります... NULL にならないようにするには、コントローラーにどの型を入れるべきですか? 私はここでまったく新しいので、助けてください。どんな助けでも大歓迎です!

以下は、私が試してみたいコードです:

 var myData = { id:100, description:"some text"};
 var myDataArray= new Array();   
 myDataArray.push(myData);   
 $.ajax({
    dataType: "json",
    type: "POST",
    url: "/Weather1/Weather_post",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(myDataArray),
    success: function (data) {
        console.log(("OK"));
    },
    error: function (error)
    { console.log("NOT OK"); }
})

コントローラ:

[HttpPost]
public JsonResult Weather_post(String MyModuleList)
4

4 に答える 4

3

あなたは電話processData: falseに出ていません。ajaxそれがなければ、を URL クエリ文字列にajax詰め込もうとします。data(ここを参照してください: http://api.jquery.com/jQuery.ajax/ )

datais{ 'animal': 'elephant', 'count': 5 }およびprocessDatais true(デフォルト) の場合、空の HTTP 要求本文でURL に対して実行されますajax。これがあなたが望む理由です。POST/Weather1/Weather_post?animal=elephant&count=5processData: false

于 2013-09-06T16:50:21.517 に答える
0

パラメータ名をデータとともに渡す必要がある場合があります。何かのようなもの:

 data: {'MyModuleList': JSON.stringify(myDataArray)},

これがうまくいくかどうかを確認してください。

于 2013-09-06T17:15:39.917 に答える
0

次のようにしてみてください。

 var myData = { id:100, description:"some text"};
 var myDataArray= new Array();   
 myDataArray.push(myData); 
 var param = JSON.stringify(myDataArray);  
 $.ajax({
     dataType: "json",
     type: "POST",
     url: "/Weather1/Weather_post",
     contentType: "application/json; charset=utf-8",
     data: {'MyModuleList': param },
     success: function (data) {
          console.log(("OK"));
     },
     error: function (error)
     { console.log("NOT OK"); }
 })
于 2013-09-06T17:07:31.180 に答える