据我所知,asp-validation-summary可能是以下之一:
我想知道是否有任何可能的方法或技巧来获取所有NonModel错误,或者换句话说,是通过ModelState.AddModelError(“ custom”,“一些不是来自模型中ValidationAttribute的错误而添加的错误” );
答案 0 :(得分:3)
否,因为两者之间没有有意义的区别。 ModelState
是可枚举字符串的字典。没有有关特定键或值或该值中项目来自何处的信息。
“模型”错误只是添加到空字符串键中的错误,而“非模型”错误则是其他任何错误。这就是你所拥有的。
答案 1 :(得分:1)
遇到同样的问题。 我想就地显示字段错误,并在Bootstrap警报中显示服务器端错误。 为了区分显式添加的错误,我添加了前缀(在本例中为“#”):
ModelState.AddModelError("#SomeError", "Some error occured");
然后可以通过以下方式在视图/页面中过滤这些错误:
var explicitlyAddedErrors = Model
.Where(_ => _.Key.StartsWith("#"))
.SelectMany(_ => _.Value.Errors)
.ToList();
希望这对某人有用。 :)
答案 2 :(得分:0)
您可以将以下行添加到通常放置asp-validation-summary的位置
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
第一个参数确定是否排除属性错误。由于我已经有了asp-validation-for =“ PROPERTY”,因此我将其保留为true;多次显示相同的错误消息毫无意义。
第二个参数是显示错误消息的标题。例如:
@Html.ValidationSummary(true, "Errors", new { @class = "text-danger" })
Errors
* Invalid Login
“错误”仅在存在至少一个错误的情况下显示。
最后一个参数不言自明。
希望这会有所帮助! :)