Asp.net mvc 如何在MVC中向验证属性添加错误代码?
我希望能够指定在验证失败时从API返回的错误代码以及错误消息。其目的是为属性指定验证属性,例如:Asp.net mvc 如何在MVC中向验证属性添加错误代码?,asp.net-mvc,validation,asp.net-core-mvc,data-annotations,Asp.net Mvc,Validation,Asp.net Core Mvc,Data Annotations,我希望能够指定在验证失败时从API返回的错误代码以及错误消息。其目的是为属性指定验证属性,例如: [范围(1,int.MaxValue,ErrorMessage=“页面必须为1或更大”,ErrorCode=1234)] 如果有人请求第0页,则在正文中返回一个包含JSON错误对象的400错误请求,如下所示: { “错误代码”:1234, “errorMessage”:“页面:页面必须为1或更大” } 我已经有了一个自定义的modelvalizationfilter,它从ModelStateDic
[范围(1,int.MaxValue,ErrorMessage=“页面必须为1或更大”,ErrorCode=1234)]
如果有人请求第0页,则在正文中返回一个包含JSON错误对象的400错误请求,如下所示:
{
“错误代码”:1234,
“errorMessage”:“页面:页面必须为1或更大”
}
我已经有了一个自定义的modelvalizationfilter
,它从ModelStateDictionary
返回一系列错误消息,因此一切正常,但是我看不到一种简单的方法,可以在不覆盖所有MVC模型验证类的情况下获取其中包含的错误代码
这似乎是一个应该由某人在某个时候解决的问题,但我找不到任何东西来支持这一理论。我想到的一个快速而肮脏的方法是将错误代码包含在错误消息中,并以常量键作为前缀:[Range(1,int.MaxValue,ErrorMessage=“页面必须为1或更大错误代码=1234”)]
。在您的自定义筛选器中,使用字符串操作从错误消息中再次检索它。感谢@GeorgPatscheider,这基本上就是我所使用的,尽管我对它进行了进一步的抽象,因此ErrorCode和ErrorMessage是CustomRange验证器的属性。有人能提供一些此解决方案的代码吗?