为什么.NET Core API中的POST参数总是为空

问题描述 投票:0回答:2

我创建了一个简单的.NET核心控制器,并尝试从Angular查询它。

问题是,每当我向登录操作发送发布请求时,我总是会收到空参数!不过,很奇怪的是,在进行调查时,请求正文/有效负载清楚地表明我的参数已设置。

请参阅我的屏幕截图,以了解我的意思。enter image description here

[我已经尽力而为,并且在过去的几个小时里一直在阅读类似的问题,但是没有取得任何成功😭

所以我的问题是:是什么导致我的空参数? .NET核心可能正在做我不知道的事情。

如果您认为查看更多代码或整个项目会有所帮助,请随时询问!

c# angular asp.net-core post parameters
2个回答
2
投票

您无法从主体中获得两个单独的参数,因为它将绑定emailpassword作为参数的属性,而不是确切的参数。您需要创建一个对象,该对象使用这些名称定义属性,然后在参数中使用该对象

class Login 
{
   public string Email { get; set; }
   public string Password { get; set; }
}

在动作方法参数中

([FromBody]Login model)

1
投票

我建议使用电子邮件和密码属性创建类。并使用[FromBody]属性。

public class LoginModel
{
   public string Email {get;set;}
   public string Password {get;set}
}

[HttpPost]
[Route("login")
public async Task<IActionResult> Login([FromBody] LoginModel model)
{
  // your code
}
© www.soinside.com 2019 - 2024. All rights reserved.