ASP.NET MVC应用程序中的客户端和服务器端验证

4
我们正在启动一个新的ASP.NET 3.5 MVC应用程序。以下是验证要求:
  • 需要客户端和服务器端验证。
  • 在一个地方设置验证规则。
  • 处理常见场景,如“密码”和“确认密码”。

选项:

  • DataAnnotation(仅支持服务器端验证)
  • EL 4.1 Validation Application Block(仅支持服务器端验证)
  • xVal 框架
  • 验证库 框架
  • Validator Toolkit 框架
  • 其他?

xVal和“验证库”都可以使用DataAnnotation和jQuery验证插件。

如果表单中有一个字段在“创建”时是必填项,但在“更新”时不是必填项,则这些框架中哪个可以处理此场景?

请建议哪个是MVC客户端和服务器验证的最佳选择?

谢谢。

1个回答

4
我可以回答其他人的问题 :) FluentValidation 看起来很有趣。他们提供了一种流畅的语法,例如:
public class CustomerValidator: AbstractValidator<Customer> {
    public CustomerValidator() {
        RuleFor(customer => customer.Surname).NotEmpty();
        RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Missing first name");
    }
}

它还与ASP.NET MVC一些小的集成,您可以将验证结果添加到ModelState中,如下所示:

public ActionResult Save(Customer customer) {
    var validator = new CustomerValidator();
    var results = validator.Validate(customer);
    results.AddToModelState(ModelState, "customer");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接