0

私がやろうとしているのは、JSONオブジェクトをWebAPI ajax呼び出しに渡し、サーバー側で強く型付けされたオブジェクトにマップすることです。文字列値は完全に投稿されていますが、ブール値に関しては、まったく渡されていません。以下は私のコードです:

 var gsGasolineField = $('.gsGasoline').val();
 blData = { Gasoline: gsGasolineField  };

 var json = JSON.stringify(blData);
 $.ajax({
         type: "POST",
         url: url,
         data: json,
         contentType: "application/json",
         dataType: "json",
         statusCode: {
                      201 /*Created"*/: function (data) {
                            $("#BusinessLayerDialog").dialog("close");
                            ClearForm("#BusinessLayerForm");
                        },
                        400: /*Bad request - validation error*/ function (data) {
                            $("#BusinessLayerForm").validate().form();

                        },
                        500: function (data) {
                            alert('err');
                        }
                    },
         beforeSend: setHeader
                });

ガソリンプロパティは、サーバー側でブール型です。

編集:

上記のように、ガソリンはブール値であり、MVCである私のHTMLマークアップは次のとおりです

<div style="float: left">@Html.CheckBoxFor(x => x.GasStation.Gasoline, new { @class = "gsGasoline" })</div>

したがって、このチェックボックスの値を取得して、JSONオブジェクトに渡します。

編集

また、それを直接送信しようとしました

blData = { Gasoline: true  }; 

まだ偽のサーバー側!

4

2 に答える 2

1

$('.gsGasoline').val()に変更$('.gsGasoline').is(':checked')

于 2012-11-01T11:08:05.657 に答える
0

この問題は、サーバー側アーキテクチャの継承の側面が原因であることが判明しました。親クラスのすべてのプロパティは正しく逆シリアル化されており、子クラスのすべては変更されていません。JSON.Stringify関数に渡される型とは何の関係もありませんでした。

よろしくお願いします。

于 2012-11-01T13:04:38.833 に答える