【发布时间】:2012-05-18 12:51:04
【问题描述】:
对于多个必填字段的简单验证,我使用了一个自定义验证器,解释了here
我得到了所需的行为并且验证摘要消息正确显示,但我现在缺少的是无效输入元素上缺少验证错误 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 类。
【问题讨论】:
-
如何在视图中输出
<input name="ModelName" .../>?请提供您使用的代码。 -
我更新了这个问题,详细介绍了我的模型以及我如何使用 MultipleFieldsRequired 属性。