1

我有一个需要验证属性和远程验证属性的字段。

我只想在远程验证失败时才显示错误消息,而不是在必需的属性上。

我可以将错误消息设置为空字符串,但我不想修改 ViewModel 数据注释。

是否可以仅从客户端执行此操作,而无需修改 ViewModel 属性?

// working hack
public class CreateViewModel
{
    [Required(ErrorMessage = " ")]
    [Remote("IsUserNameValid", "Users", ErrorMessage = "This user name is already used")]
    [Display(Name = "User Name")]
    public string UserName { get; set; }
}
4

1 回答 1

2

您可以禁用所需的规则。例如,给定一个 ID 为“LoginForm”的表单和一个 ID 为“UserName”的必填输入字段,您可以使用以下任一方法禁用所需的规则:

$("#UserName").rules("remove", "required");
$("#loginForm").validate().settings.rules["UserName"].required= false;

另一种选择是将错误消息更改为空字符串。同样,您有一些选择,例如:

$("#UserName").rules("add", {
    messages: {
        required: ""
    }
});
$("#loginForm").validate().settings.messages["UserName"].required= '';

最后,这是关于使用表单的 jquery 验证对象的规则和消息。

希望能帮助到你!

于 2013-06-27T12:03:38.777 回答