厳密に型指定されたビューのデータとして JSON オブジェクトを含む ajax 投稿を使用しています。フォームのシリアル化は正常に機能しますが、モデルの取得中にコントローラーでプロパティがマップされていません。Firebug では、次のスナップを取得しています
シリアル化された JSON オブジェクトを c# オブジェクトにマップするにはどうすればよいですか
厳密に型指定されたビューのデータとして JSON オブジェクトを含む ajax 投稿を使用しています。フォームのシリアル化は正常に機能しますが、モデルの取得中にコントローラーでプロパティがマップされていません。Firebug では、次のスナップを取得しています
シリアル化された JSON オブジェクトを c# オブジェクトにマップするにはどうすればよいですか
フォームを json オブジェクトに変換するには、jquery 拡張機能をコピーする必要があります。
(function() {
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
})(jQuery)
json2.jsライブラリを含めJSON.stringify()
て、レガシー ブラウザのサポート を追加します。
次に、ajaxを次のように変更します
$.ajax({
url : '',
type: 'POST',
contentType : 'application/json',
data : JSON.stringify($('form').serializeObject()),
....
})
あなたの場合
$('#frm').submit(function() {
postJSON('@Url.Action("Create", "District")', JSON.stringify($('form').serializeObject()),
function(result) {
alert(result.Message);
if (result.Success) {
window.location = '@Url.Action("Index", "District")';
}
});
return false;
});
これは単なる標準のシリアル化された形式です。JSON ではありません。
あなたはこれを見たいと思うかもしれません。