Asp.net mvc 4 使用不引人注目的JavaScript时从jquery验证获取消息

Asp.net mvc 4 使用不引人注目的JavaScript时从jquery验证获取消息,asp.net-mvc-4,unobtrusive-javascript,jquery-validate,Asp.net Mvc 4,Unobtrusive Javascript,Jquery Validate,嘿,有很多狂热者 我正在尝试将我的一个旧站点更新为Asp.net MVC4的最新版本。它以前出现在MVC2上,在MVC2上,它允许我将jquery和客户端的内容与任何后端的内容分离开来。但我猜,使用MVC4,他们希望您将大量验证内容直接绑定到您的模型上,等等 但我有一个客户端jquery验证脚本,它以前运行得很好,我想知道,如何才能让它再次运行。具体来说,我有一个字段,如果用户输入的字符超过4000个,该字段将不会被验证。否则就不需要了。以下是以前在MVC2中使用过的客户端代码 Comment:

嘿,有很多狂热者

我正在尝试将我的一个旧站点更新为Asp.net MVC4的最新版本。它以前出现在MVC2上,在MVC2上,它允许我将jquery和客户端的内容与任何后端的内容分离开来。但我猜,使用MVC4,他们希望您将大量验证内容直接绑定到您的模型上,等等

但我有一个客户端jquery验证脚本,它以前运行得很好,我想知道,如何才能让它再次运行。具体来说,我有一个字段,如果用户输入的字符超过4000个,该字段将不会被验证。否则就不需要了。以下是以前在MVC2中使用过的客户端代码

Comment: {
    required: function (element) {
    return $(element).val().length > 4000;
    },
    maxlength: 4000
}
以及验证未通过时将显示的消息

messages: {
                ...
                Comment: 'Why dont you stop attempting to put in more than 4000 characters?  Thanks...'
            }
我怎样才能用MVC4做到这一点?要在另一个字段中显示任何内容,我注意到我需要在我的模型中的字段上方放置一个required

    [Required(ErrorMessage = "Please select an Admit Date")]
    public DateTime? AdmitDate { get; set; }

有没有一种方法可以编写一个需求函数,使它只在某些情况下被需要?如果你明白我的意思的话,我更愿意让客户把我的担忧分开。任何帮助都将不胜感激。

您可以使用
[Required]
[StringLength]
来限制评论中的输入

[Required(ErrorMessage = "Please fill in a comment")]
[StringLength(4000, ErrorMessage = "Why dont you stop attempting to put in more than 4000 characters?  Thanks...")]
public string Comment { get; set; }
默认数据批注不包含条件必需约束。处理“复杂”验证的默认方法是在模型上实现
IValidatableObject
接口


然而,由于您正在寻找客户端解决方案,我们可以看看其他可能为您解决此问题的框架。例如,支持一个
[RequiredIf]
属性,该属性也可以在客户端工作。

我真怀念只包含验证插件和黑客攻击。