对于多个必填字段的简单验证,我正在使用此处解释的自定义验证器
我得到了所需的行为并且验证摘要消息正确显示,但我现在缺少的是无效输入元素上缺少验证错误 css 类,这是在使用内置验证器时添加的。
这是正确的行为:
<input class="input-validation-error" name="ModelName" ... />
这就是我在使用提到的自定义验证器时得到的:
<input name="ModelName" ... />
请注意,我指的是服务器端验证。
更新
这是我的模型:
public class Register
{
[MultiFieldRequired(new[] { "Name", "UserName" }, ErrorMessage = "Please provide all required information")]
[Display(Name = "Name")]
public string Name { get; set; }
[MultiFieldRequired(new[] { "Name", "UserName" }, ErrorMessage = "Please provide all required information")]
[Display(Name = "User name")]
public string UserName { get; set; }
}
这是渲染的输出:
<input class="text-box single-line" data-val="true" data-val-multifield="Please provide all required information" id="Name" name="Name" type="text" value="" />
<input class="text-box single-line" data-val="true" data-val-multifield="Please provide all required information" id="UserName" name="UserName" type="text" value="" />
我现在意识到只有当我使用MultiFieldRequired属性装饰整个模型类时才会出现问题:
[MultiFieldRequired(new[] { "Name", "UserName" }, ErrorMessage = "Please provide all required information")]
public class Register
{
...
在这种情况下,没有无效字段修改了 css 类,而在另一种情况下,当我注释模型中的每个字段时,我得到相同的错误消息乘以无效字段的数量。
因此,总而言之 - 无论无效字段的数量如何,我都希望有一条错误消息,并且我还希望每个无效字段都用 .input-validation-error 类标记。