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

asp.net-mvc – Asp.net内核MVC post参数始终为null

发布时间:2020-12-15 23:14:59 所属栏目:asp.Net 来源:网络整理
导读:我是MVC核心的新手. 我已经创建了一个具有控制器的MVC核心的项目.该控制器具有Get和Post操作方法.如果我使用查询字符串传递数据到Get方法,它可以正常工作,但是当我将复杂的JSON传递给post方法时,它总是显示为null. 我在做什么 发布请求 URL: http://localhos
我是MVC核心的新手.

我已经创建了一个具有控制器的MVC核心的项目.该控制器具有Get和Post操作方法.如果我使用查询字符串传递数据到Get方法,它可以正常工作,但是当我将复杂的JSON传递给post方法时,它总是显示为null.

我在做什么

发布请求

URL: http://localhost:1001/api/users
Content-Type: application/json
Body: 
{
   "Name":"UserName","Gender":"Gender of the user","PhoneNumber":"PhoneNumber of the user"
}

这是Post操作方法

[HttpPost]
[Route("api/users")]
public async Task<IActionResult> Post([FromBody]User newUser)
{
   ...
}

当post请求被调用时,newUser总是显示为null.如果我删除[FromBody]属性,那么我接收newUser对象,但是所有的字段都是空的.

请帮我指点一下这个问题.

EDITED

这是我的User类

public class User{

   public int Id { get; set; }
   public string Name { get; set; }
   public string Gender { get; set; }
   public string PhoneNumber { get; set; }
}

我已经做了相同的描述here的json数据,但仍然收到null.

解决方法

这可能是因为如何处理空值.将NullValueHandling设置为在AddJsonOptions中忽略,看看是否有效.
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .AddJsonOptions(jsonOptions=>
        {
            jsonOptions.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
        });
}

(编辑:李大同)

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

    推荐文章
      热点阅读