asp.net EFCore -POST请求返回“X字段是必填字段”

kfgdxczn  于 2023-02-01  发布在  .NET
关注(0)|答案(1)|浏览(223)

我试图创建一个POST方法邮寄使用EFCore和OData在ASP.NET。当发送请求通过 Postman 它返回400-"请求字段是必需的"。我不知道什么问题可能是。请求包含所有指定字段的表单数据,任何想法是什么问题?
控制器:

[HttpPost("mail")]
    public async Task<IActionResult> Mail([FromBody] SupplierMailDto request) =>
        await Handle(Service.WriteMail(request));

SupplierMailDto包含上面指定的所有字段。

public record SupplierMailDto : ISupplierMailDto 
{
    public String? Subject  {get; set;}

    public String? Message  {get; set;}

    public UInt64? UserId   {get; set;}

    public String? UserName {get; set;}

    public String? Receiver {get; set;}
}

然而,程序实际上并没有进入方法,有什么想法吗?
在使用SupplierMailDto之前,我尝试使用实际的实体,但这也不起作用。我尝试更改请求的形式,但没有成功。

ql3eal8s

ql3eal8s1#

您为数据源指定了[FromBody]属性,但您将数据作为表单发送,因此存在不匹配。您应将该属性更改为[FromForm]或更改请求格式(例如,将其设置为具有JSON内容的原始正文,并将Content-Type标头更改为application/json)。

相关问题