2

こんにちはみんな私はjqueryajaxを使用してコントローラーにいくつかのデータを投稿していますが、コントローラーでnull値を取得しています、

jQueryコードは次のとおりです。

$('#registerCompOff').click(function() {

    var compOff = [];
    $('div').each(function() {
        var curRow = {};
        curRow.Description = $(this).find('.reason').val();
        curRow.CompOffDate = $(this).find('.datefieldWithWeekends').val();
        if (curRow.Description != null && curRow.CompOffDate != null) {
            compOff.push(curRow);
        }
    });
    $.ajax({
        type: 'POST',
        url: this.href,
        dataType: 'json',
        data: compOff

    });

    return $('form').valid();

});​

compOffnullではありません私はそれをチェックしました...

コントローラは次のとおりです。

 [HttpPost]
        public ActionResult RegisterCompOff(RegisterCompOff[] registerCompOff)
        {

            //return View();
        }

どこが悪いのか教えてもらえますか?

4

3 に答える 3

3

元のコードを指定して、 $。ajax- >で変更し、最後にコントローラーのアクションのパラメーター名をにdata: JSON.stringify(compOff)追加して変更します。その後、モデルのバインドが開始されます。それは私のためになりました。contentType: "application/json; charset=utf-8"public ActionResult RegisterCompOff(RegisterCompOff[] compOff)

于 2012-06-25T12:06:42.877 に答える
1

編集:

これを試して :

 $.ajax({
        type: 'POST',
        url: this.href,
        dataType: 'json',
        traditional: true,
        data: 
        {
             CompOffList: compOff 
        }
    });

次のようにコントローラーを変更します。

[HttpPost]
        public ActionResult RegisterCompOff(List<RegisterCompOff> CompOffList)
        {

            //return View();
        }

お役に立てれば

于 2012-06-22T08:31:13.343 に答える
0

jqueryajaxメソッドがキー/値ペアリストを期待するデータとしてjavascriptオブジェクトを渡すr。これを試して

data:{Description:compOff.Description, CompOffDate:compOff.CompOffDate}
于 2012-06-22T08:26:22.897 に答える