0

嘿,StackOverflow 爱好者。

我正在尝试将我的旧站点更新为最新版本的 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...'
            }

如何使用 MVC 4 做到这一点?为了在另一个字段中显示任何内容,我注意到我需要在模型中的字段上放置一个 required ......

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

有没有办法编写一个需求函数,以便只在某些情况下需要它?如果您知道我的意思,我宁愿将其保留在客户端以将我的担忧分开。任何帮助,将不胜感激。

4

1 回答 1

1

您可以使用[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在模型上实现接口。

但是,由于您正在寻找客户端解决方案,我们可以查看可能为您解决此问题的其他框架。例如,MVC Foolproof Validation支持[RequiredIf]也适用于客户端的属性。

于 2012-09-06T18:17:38.667 回答