我目前正在尝试将我的视图中的 JSON 对象发布到 MVC 3 应用程序中的控制器,并且我期望来自请求的数据绑定到我的控制器操作的模型参数。但是,当我检查 HTTP POST 请求时,看起来数据是作为查询字符串传递的,我不确定为什么(这一切都很新)。
这是我的 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 岁!这些是我捣碎的第一个数字。
谢谢!
詹姆士