2017-09-26 374 views
0

我正在使用Asp.Net Core 2.0和web api来构建一个休息服务。除了HTTPPost之外,所有的工作都很好。什么原因导致参数为空?

[HttpPost("LoginUser")] 
public IActionResult LoginUser(LoginUser loginUser) 
{ 
    return Ok(loginUser); 
} 

loginUser始终为空。我与小提琴手的测试,我的路线是http://localhost:53250/api/User/LoginUser

而且身体

{"EmailAddress":"[email protected]","Password":"123456789"} 

提琴手命中链接就好了,但有效载荷始终为空。

我也曾尝试

[HttpPost("LoginUser")] 
public IActionResult LoginUser([FromBody] LoginUser loginUser) 
{ 
    return Ok(loginUser); 
} 

在这种情况下,不打功能。

这是LoginUser定义:

public class LoginUser 
{ 
    public string EmailAddress { get; set; } 
    public string Password { get; set; } 
} 

什么想法?

+0

本地测试,它的工作原理。测试邮差,选择邮政,身体 - >原始和键入JSON,它为我工作 – hardkoded

+1

也注意到你的行动不应该'无效'。返回'IActionResult' – Nkosi

+0

与邮递员相同的结果。你在使用核心2.0吗? –

回答

0

问题已解决。当我添加我的UserController时,我做了一个类并从控制器派生。我删除它,并添加它作为一个新的项目,并选择web api核心控制器。现在所有的工作都很好。谢谢你的帮助。

0

JSON解析区分大小写。你的JSON是错误的。 应为:{“EmailAddress”:“[email protected]”,“密码”:“123456789”}。

+0

对不起,我从visual studio中复制了转换。这里是我从小提琴手发送的内容:{“EmailAddress”:“[email protected]”,“密码”:“123456789”}。 –

1

你的动作应该是:

[Route("api/[controller]")] 
public class UserController : Controller 
{ 
    [HttpPost("LoginUser")] 
    public IActionResult LoginUser([FromBody] LoginUser loginUser) 
    { 
     return Ok(loginUser); 
    } 
} 

见,[HttpPost("LoginUser")]影响必经之路,不涉及到LoginUser对象类型。

更新:您需要[FromBody]作为ASP.NET Core model binding默认情况下会查看[FromForm]绑定源。并且[FromBody]属性指示您要将参数绑定到请求正文中的数据。

更新2:您还应该添加Content-Type: application/json标题来请求。 ASP.NET Core根据此标题选择输入格式化程序。

更新3:如果您确实需要将原始数据作为原始字符串,请查看ASP.NET Core MVC : How to get raw JSON bound to a string without a type?。它建议使用[FromBody] dynamic data

+0

我知道。但我正在通过一个有效的LoginUser将身体对象传递给http调用。它仍然是空的... –

+0

@JohnBaird你真的尝试过这个解决方案吗?看起来对我来说是正确的。 – Brad

+0

@JohnBaird是否添加了'Content-Type:application/json'标头?你传递json数据的正文,并且你有相应的模型'LoginUser' =>期望body作为'string'是没有意义的(就像你在第二个例子中:[FromBody] string loginUser)。 – Set

0
  • 如果您的请求模型中的属性设置为{get; private set;},则值将不会填充。通过删除private来公开它们。也没有使用构造函数 。

  • 如果您正在从正文中读取纯文本,请参阅[FromForm] 的工作原理。

相关问题