我试图创建一个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之前,我尝试使用实际的实体,但这也不起作用。我尝试更改请求的形式,但没有成功。
1条答案
按热度按时间ql3eal8s1#
您为数据源指定了
[FromBody]
属性,但您将数据作为表单发送,因此存在不匹配。您应将该属性更改为[FromForm]
或更改请求格式(例如,将其设置为具有JSON内容的原始正文,并将Content-Type
标头更改为application/json
)。