基本上我试图在我的webapi控制器中创建一个方法:
方法如下(方法体相关):
[HttpPost]
public HttpResponseMessage CpaLead([FromBody]CpaLeadVM model)
{
这里是传递对象的类声明:
public class CpaLeadVM
{
public string UserIp = "";
public string UserCountry = "";
public double Earn = 0.0;
public string SurveyType = "";
}
事情是;当我向方法发送post请求时,模型始终为null。 帖子请求包含以下数据:
UserIp=hello
Earn=44.4
UserCountry=denmark
SurveyType=free
它是否能够绑定到模型或我在这里遗漏了什么?
答案 0 :(得分:2)
问题在于"属性"你试图绑定到字段而不是实际属性。 Web Api中的模型绑定器和格式化程序不会查看字段。如果您将模型更改为:
public class CpaLeadVM
{
public CpaLeadVm()
{
UserIp = "";
UserCountry = "";
Earn = 0.0;
SurveyType = "";
}
public string UserIp {get;set;}
public string UserCountry {get;set;}
public double Earn {get;set;}
public string SurveyType {get;set;}
}
您的绑定将有效。作为旁注,您的操作的[FromBody]
属性是多余的,因为默认情况下非约束值是从请求正文绑定的。
答案 1 :(得分:0)
如您所知,您只能从正文中获取一个值,该值必须以" = value"发送。有关详细信息,请参阅此文章 http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/
我不确定,但我认为你可以创建自己的模型绑定器,将身体解析到你的班级。另一种方法是使用JSON。在这里阅读更多相关信息 ASP.NET MVC 4 Post FromBody Not Binding From JSON