私はこのようなコントローラを実装しました:
[HttpPost]
[ActionName("DefaultAction")]
public HttpResponseMessage Post(Person obj){
}
Person はこのクラスです:
public class Person
{
public String Name { get; set; }
public byte[] ImageStream { get; set; }
}
クライアント側で、新しい Person を投稿するために次の呼び出しを行います。
var person={
"Name":"Test",
"ImageStream":"AQID"
}
$.ajax({
type: "POST",
url: "/person",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(person),
success: function (result) {
console.log(result); //log to the console to see whether it worked
},
error: function (error) {
alert("There was an error posting the data to the server: " + error.responseText);
}
});
問題は、ImageStream が null に設定された Person オブジェクトを受け取ることです。
私が使用するImageStream文字列が正しいかどうかをテストするために、これを試しました:
Person p=new Person();
p.Name="Test";
p.ImageStream=new byte[]{1,2,3};
String json=JsonConvert.SerializeObject(p);