我目前正在嘗試從我的視圖發佈JSON對象到我的控制器在MVC 3應用程序,我期待從請求的數據綁定到模型我的控制器動作參數。但是,當我檢查HTTP POST請求時,它看起來像是作爲查詢字符串傳遞的數據,我不確定爲什麼(對於所有這些都很新穎)。MVC 3試圖從視圖發送JSON對象到模型
這裏是我的POST請求:
$.ajax({
type: 'POST',
url: "Test/Add",
data: { Name: name, Age: age },
success: function (data) {
console.log("success");
},
error: function (xhr, data, message) {
console.log(data + ": " + message);
},
dataType: "json"
});
下面是從我的控制器代碼後跟模型我試圖綁定到代碼:
[HttpPost]
public ActionResult Add(PersonModel person)
{
System.Threading.Thread.Sleep(1000);
return View();
}
// person model:
public class Person {
public string Name {get;set;}
public int Age {get;set;}
}
這是小提琴手請求 - 我突出了我不確定的部分:
我想內容類型將是「應用/ JSON」,並且數據不會看起來像一個查詢字符串 - 我認爲這將是這個樣子:
{
Name: "James",
Age: 13
}
最終的問題是,如果我堅持一個我的控制器操作中的斷點我期望看到一個填充的Person對象,但它始終爲空。如果我將簽名替換爲(object name, object age)
,那麼我將得到參數的值(兩者都是一個字符串數組 - 所以name是一個帶有1個元素的字符串數組,它等於「James」)。
任何想法,我哪裏出錯了?
哦,只是供參考,我其實不是13!那些是我捏造的第一批數字。
謝謝!
詹姆斯
改變我選擇的答案,因爲這是一個更完整的解決方案和一個工作示例。實際上,我自己使用@Davids貢獻加上更多的Google搜索,但是如果我想先嚐試一下,那麼我會更快。乾杯 - 詹姆斯 – 2012-04-05 14:13:27
可能是正確的選擇 - 凱文明確指出我錯過了關於JSON有效載荷的串化。 – 2012-04-05 14:29:29