【发布时间】:2022-01-27 20:49:31
【问题描述】:
假设我的客户有一个 PUT 请求,我想处理这些数据。使用FromBody 属性,我可以获得绑定数据。但是当没有数据绑定到我的 [FromBody] 对象时,我想向我的客户发送 400。因为如果我不这样做,我将使用一个成员无缘无故地为空/默认的对象来更新我的数据库。如何在 .NET 5 中解决这个问题?
一个示例函数定义是:
public async Task<IActionResult> PutAsync(long id, [FromBody] PersonUpdateDto personUpdateModel)
public class PersonUpdateDto {
public string Name {get; set;}
public string Surname {get; set;}
}
再次,如果personUpdateModel 中的所有成员都为空,我想向我的客户返回 400。(这意味着没有发生绑定操作)
【问题讨论】:
-
从您发布的内容来看,这听起来您只需要在函数顶部添加一个简单的
if语句。你已经试过了吗? -
尝试在 PersonUpdateDto 类的 Name 和 Surname 字段中添加 Required 属性
-
@Matt.G 对于
PUT端点来说,必需不是一个好的设计,因为客户端可以选择不更新某个字段。 -
@gunr2171 如果您能提供一个示例
if声明,我将不胜感激
标签: c# .net .net-core automapper .net-5