我应该如何验证DTO?

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

我正在尝试使用C#中的.net创建Web API

尽管我在研究中遇到的问题是,在dto中有很大的禁止放置验证代码或数据注释属性,但我看到的每个教程在这行中都有一些东西

[HttpPost]
public IActionResult Post(SomeDto someDto)
{
     if (ModelState.IsValid){
         //DoStuff();
     }
}

如果我没记错,则ModelState.IsValid检查参数是否满足SomeDto dto的验证要求。例如:

public class SomeDto    
{
    [Range(0, 10, ErrorMessage = "Price cannot be more that 10")] //this
    public decimal Price { get; set; }
}

因此,我是否应该在DTO内放置数据注释或任何验证逻辑?这将是“更清洁”的解决方案吗?

c# .net api validation dto
1个回答
0
投票

如果您需要实施更复杂的逻辑进行验证,最好使用FluentValidator之类的工具。在这种情况下,您可以分离类并定义自定义验证逻辑,并将验证属性用于操作或类似这样的操作:

© www.soinside.com 2019 - 2024. All rights reserved.