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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – Asp.net内核MVC post参数始终为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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;
        });
}

猜你在找的asp.Net相关文章