c# - 在 ASP.NET MVC 中,如何获取在模型验证中生成验证错误的元素(从列表中)
问题描述
我有一个带有以下 Action 标头的 API 控制器:
public IHttpActionResult Post(InvoicesDTO invoices)
其中 InvoicesDTO 如下:
public class InvoicesDTO
{
public int IdHeader { get; set; }
[DataType(DataType.DateTime)]
public DateTime DateSend { get; set; }
public List<InvoiceDTO> ListInvoices { get; set; }
}
InvoiceDTO 是一个带有一些 DataAnnotations 验证的 POCO 类。
问题是,当发生验证错误时,我想知道 InvoicesDTO 列表中的哪个 InvoiceDTO 是产生错误的那个,以便能够执行以下操作:
if (ModelState.IsValid)
{
}
else
{
_logger.LogError($"Validation Error at Invoice -
{ModelState.Values.First().WHATEVER_TO_GET_THE_ELEMENT_THAT_GENERATED_THE_ERROR");
}
谢谢!
解决方案
您可以遍历模型的所有属性并检查单个属性的有效性。
bool isvalid = ModelState.IsValidField("模型属性");
推荐阅读
- python - 如何将具有 [1] (对象)等值的列转换为数值?
- python-3.x - 为什么我在提供的内容中收到 ValueError?
- c# - c# - 如何禁用按钮直到文本框在c#中不为空?
- asp.net-mvc - 如何在 Asp.Net MVC 中显示上周的数据
- javascript - 重用 Axis Scale 覆盖设置域
- c++ - C ++:array1 = array2 vs使用循环将array2的值分配给array1
- c# - 使用 AngleSharp 向 Microsoft 进行身份验证
- java - 为什么用轻微形式编写的 2 个相同的数字会在 Java 中产生 2 个不同的结果
- c# - Mathf.SmoothDamp 立即发生(Unity 3d)
- arrays - 如何将指针显示为可能具有一定范围的数组