Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在MVC中向验证属性添加错误代码?_Asp.net Mvc_Validation_Asp.net Core Mvc_Data Annotations - Fatal编程技术网

Asp.net mvc 如何在MVC中向验证属性添加错误代码?

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

我希望能够指定在验证失败时从API返回的错误代码以及错误消息。其目的是为属性指定验证属性,例如:

[范围(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验证器的属性。有人能提供一些此解决方案的代码吗?