jQuery ajaxを介してAsp.Net MVCコントローラにデータを投稿しようとしています。私は私が働いていますフォロークラスを持っている:jsonをmvcコントローラに渡す
public class InnerStyle
{
[JsonProperty("color")]
public string HeaderColor { get; set; }
[JsonProperty("font-size")]
public string HeaderFontSize { get; set; }
[JsonProperty("font-family")]
public string HeaderFontFamily { get; set; }
}
postメソッドは次のようになります。
public JsonResult UpdateRecord(InnerStyle innerStyle)
{
//Do some validation
return Json("OK");
}
そして、私のjQueryのようになります:
$('#font-size-ddl').change(function() {
var value = $(this).val();
headerObj["font-size"] = value;
console.log(JSON.stringify({ innerStyle: headerObj }));
$.ajax({
type: "POST",
url: "@Url.Action("UpdateRecord", "Document")",
data: JSON.stringify({ innerStyle: headerObj}),
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data);
}
});
});
にconsole.logで上記の変更イベントにより、次のJSON文字列が生成されます:
{"innerStyle":{"text-align":"","font-size":"20px","color":""}}
ここで私の問題は、UpdateRecord
アクションでブレークポイントを設定し、innerStyle
オブジェクトがnullであることを確認することです。誰かが私がどこに間違って行くのか教えてもらえますか?
[JsonProperty]はNewtonsoft.Jsonのようです。 Asp.netコントローラはそれをサポートしていません –
@ DanilEroshenkoそれでは、私が達成しようとしているものを達成するために他にどのような選択肢が必要ですか? – Code
あなたはModel Binderを見ることができます。要するに、データはRequest自体で利用できるはずです。 – user2580925