加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Web API模型属性为null

发布时间:2020-12-16 09:52:36 所属栏目:asp.Net 来源:网络整理
导读:我的控制器能够创建模型对象,但所有属性都与模型相关并分配给空值 环境:VS 2010,ASP.NET MVC RC最新,jQuery 1.7.1 以下是Web API Controller代码 public class Customer{ public string Name { get; set; } public string City { get; set; }}public class
我的控制器能够创建模型对象,但所有属性都与模型相关并分配给空值

环境:VS 2010,ASP.NET MVC RC最新,jQuery 1.7.1

以下是Web API Controller代码

public class Customer
{
    public string Name { get; set; }
    public string City { get; set; }
}
public class UserController : ApiController
{
    public Customer Post(Customer user)
    {
        return user;
    }
}

以下是ajax调用代码

$.ajax('/api/user',{
  ContentType: "application/x-www-form-urlencoded; charset=UTF-8",dataType: 'json',type: 'POST',data: JSON.stringify({ "Name": "Scott","City": "SC" })
});

Controller确实创建模型“Customer”对象,但“Name”和“City”属性都为null.

这有什么不对?

我在这个网站上看过很多类似的问题,但找不到解决方案.

解决方法

这里的 This blog很好地介绍了模型绑定在ASP.NET Web项目和ASP.NET Web API项目中的不同之处.

我在我正在处理的项目中遇到了类似的问题,并添加了一个显式的ModelBinding属性,使得属性值保持不变

请求的数据:

var customer  = { Name : "customer Name",City : "custome City" }

$.ajax({ 
   url : ...
   type: ...
   data : customer
});

请求类:

public class Customer
{
    public string Name { get; set; }
    public string City { get; set; }
}

控制器:

public class UserController : ApiController
{
    [HttpGet]
    public Customer Get([ModelBinder] Customer user)
    {
        // fetch from whereever
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读