我在 ASP.NET MVC 4 RC Web API 中遇到了我认为是一个奇怪的绑定问题。我有一种方法旨在接受来自客户端的发布请求。问题是调用 post 方法时没有任何参数绑定,我在 throw 行和名称上到达断点,email 都是空的。如果我在 JavaScript 中将请求的类型更改为 GET,则调用下面的 Get 函数并绑定参数。
为什么 Post 方法的参数无法绑定,我该如何解决?
send: function(evt) {
evt.preventDefault();
$.ajax( {
url: '/api/person',
data: this.model.toJSON(),
type: "POST",
dataType: "json",
success: function(data) {
console.log("Success");
},
error: function(data) {
console.log("Error");
}
});
}
以下是控制器动作:
public void Get(string name, string email) {
throw new NotImplementedException();
}
public void Post(string name, string email) {
throw new NotImplementedException();
}
笔记:
- 我正在使用 ASP.NET MVC 4 RC Web API 的所有默认值(所以反序列化器应该是 Json.NET)
- JS 调试器上的 Chrome 网络选项卡正确显示了 post 表单数据中的参数。