C# .NET Core 2.1 API Post控制器返回无效输入
我有这个控制器C# .NET Core 2.1 API Post控制器返回无效输入,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我有这个控制器 [AllowAnonymous] [HttpPost("Authenticate")] public ActionResult Authenticate([FromBody]LoginDTO Input) { return Ok(Input); } 这是什么 public class LoginDTO { [Required] [EmailAddress] public string Email { get; set; } [Requi
[AllowAnonymous]
[HttpPost("Authenticate")]
public ActionResult Authenticate([FromBody]LoginDTO Input)
{
return Ok(Input);
}
这是什么
public class LoginDTO
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
当我使用邮递员访问它时,我收到了这条消息
{
"": [
"The input was not valid."
]
}
我如何获得我的输入?我应该不使用对象吗?我尝试通过字符串用户名和字符串密码作为参数来获取它,但效果不太好
编辑:
增加了邮递员截图
在Postman中使用原始模式,并将您的请求作为Json发送
{"Email":"","Password":""}
您不需要在URL中添加方法名称 如果您的控制器名称标记,那么您的URL应该如下 那么邮递员输入应该是这样的
如果使用PostMan,则必须在原始模式下选择JSON(JSON.application)请将视图代码发布到我没有视图的位置。我正在使用PostMany您有
[EmailAddress]
验证属性,因此您需要发布有效的电子邮件地址。请尝试从postman向电子邮件发送有效的电子邮件地址,并让我知道这是有效的。但是为什么我不能使用postman提供的方法呢?请像这样更改您的方法:public ActionResult Authenticate(LoginDTO Input),它会工作,当我删除[FromBody]时,同样的错误也会发生。输入无效。在Postman的header部分中,设置内容类型:application/x-www-form-urlencode。我已经这样做了。同样的错误。不知道这是怎么回事?如果我使用MVC5创建它,它可以正常工作。未来的读者。默认值为“文本”。在postman中的“raw”右侧有一个下拉菜单项(我当前的版本是postman 6.5.2)。谢谢你,阿里。