【发布时间】:2016-11-22 04:42:53
【问题描述】:
我是 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)
{
...
}
当发布请求被调用时,newUser 总是显示为 null。如果我删除 [FromBody] 属性,那么我会收到 newUser 对象,但它的所有字段都是空的。
请在这个问题上帮助我并指导我。
已编辑
这是我的用户类
public class User{
public int Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string PhoneNumber { get; set; }
}
我已经为 json 数据完成了与 here 中描述的相同的操作,但仍然收到 null。
【问题讨论】:
-
你有任何中间件可以拦截请求吗?你做过wireshark或fiddler trace吗?
-
不,我正在使用邮递员发送请求。我不知道如何使用 fiddler 跟踪请求。
-
下载 fiddler,观察请求并检查它们,确保您发送的内容与实际请求相匹配。使用起来真的不复杂
-
谢谢,我会试试的,但如果我在上面的代码中做错了什么,请告诉我。
-
@RaviPatel,显示
User类定义。
标签: asp.net-mvc model-view-controller asp.net-core asp.net-web-api2 .net-core