【发布时间】:2015-03-30 23:25:44
【问题描述】:
Web API Post parameters are always Null
ASP.NET Web API POST parameter is null
对这些人有效的方法似乎对我无效。我的设置几乎完全相同,但在我的第二个控制器中仍然为空。第一个工作正常,但我无法在第二个控制器中复制它。
API 调用
$.ajax
({
type: "POST",
url: "http://localhost:52441/api/login",
data: { "Username": "test", "Password": "ptest" }
})
.done(function (data) {
//var json = $.parseJSON(data);
console.log(data);
});
控制器类
public class LoginController : ApiController
{
public bool Post([FromBody]Creds creds)
{
return false;
}
}
学分类
public class Creds
{
public string Username { get; set; }
public string Password { get; set; }
public Creds(string user, string pass)
{
this.Username = user;
this.Password = pass;
}
}
就像我说的,这在另一个控制器 (UsersController) 中工作。当我通过 { "First_Name": "John", "Last_Name": "Doe" } 时,我在 Post 方法 public void Post([FromBody]User user) 中正确接收了一个用户对象@
我在这里错过了什么?
【问题讨论】:
-
不确定它是否适用于 web-api,但对于 mvc 肯定会失败,因为您没有
Creds的无参数构造函数 -
@StephenMuecke 感谢您的回复!我会设置一个,但在我原来的帖子中,我提到我也有一个 User 类,它的设置完全相同,并且可以正常工作。另外,我不确定这是否可以解释为什么我的帖子参数为空?
-
@StephenMuecke 天哪!我很抱歉我不相信你。我扔了一个只是为了看看,它起作用了!谢谢!
标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-web-api