Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 Fluent Validation.NET能否确定错误消息序列_Asp.net Mvc_Fluentvalidation - Fatal编程技术网

Asp.net mvc Fluent Validation.NET能否确定错误消息序列

Asp.net mvc Fluent Validation.NET能否确定错误消息序列,asp.net-mvc,fluentvalidation,Asp.net Mvc,Fluentvalidation,我使用Fluent Validation.NET进行验证。 是否可以从验证摘要中的“RuleFor”确定错误消息序列 例如: RuleFor(x=>x.A).NotEmpty().WithMessage("A is required."); RuleFor(x=>x.B).NotEmpty().WithMessage("B is required."); 例如,如何确定消息顺序以具体显示“B是必需的”。在“A是必需的”之前。在FluentValidationModelValidat

我使用Fluent Validation.NET进行验证。 是否可以从验证摘要中的“RuleFor”确定错误消息序列

例如:

RuleFor(x=>x.A).NotEmpty().WithMessage("A is required.");
RuleFor(x=>x.B).NotEmpty().WithMessage("B is required.");

例如,如何确定消息顺序以具体显示“B是必需的”。在“A是必需的”之前。

FluentValidationModelValidationFactory
验证程序查询中没有明确的规则顺序,这意味着服务器端错误消息的顺序取决于规则声明的顺序,例如,如果
A
属性的规则位于
B
的规则之前,则您将在
ValidationResult
中看到
A
B
之前的错误消息。但它仅适用于手动获取验证结果(创建validator对象并调用
Validate
方法)

错误进入
ModelState
对象后,它们将失去顺序。这是因为
ModelStateDictionary
type将对象存储为Dictionary,而不是List

如果我们查看
ValidationSummary
方法的NDoc描述,我们会看到:

返回ModelStateDictionary对象中验证消息的无序列表(ul元素)

但是,如果启用了客户端验证,则验证摘要元素将在不调用服务器的情况下显示,并且其错误消息的顺序与html中输入的顺序相同

结论
ViewResult
中保存错误消息顺序的唯一方法是“手动”使用validator,调用validate并在部分视图或模板中手动迭代
ValidationResult
,以创建所需的标记。但是,如果您依赖客户端验证,您可以在表单上重新排序输入。

您可以详细描述您希望看到的行为吗?相同的消息用于不同的规则,或者消息用于B,这取决于一个值,或者其他什么?我添加了一些关于这个问题的详细信息。我只想对摘要验证消息上显示的消息进行排序。