FluentValidation:验证类型名称必须是唯一 [英] FluentValidation: validation type names must be unique

查看:816
本文介绍了FluentValidation:验证类型名称必须是唯一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的code指定的以下规则

  RuleFor(X => x.Auction_Round1Ring1Start).GreaterThan(DateTime.Now);    RuleFor(X => x.Auction_Round1Ring1End).GreaterThan(X => x.Auction_Round1Ring1Start);    RuleFor(X => x.Auction_Round1Ring2Start).GreaterThan(X => x.Auction_Round1Ring1End);
    RuleFor(X => x.Auction_Round1Ring2End).GreaterThan(X => x.Auction_Round1Ring2Start);    RuleFor(X => x.Auction_Round1Ring3Start).GreaterThan(X => x.Auction_Round1Ring2End);
    RuleFor(X => x.Auction_Round1Ring3End).GreaterThan(X => x.Auction_Round1Ring3Start);    RuleFor(X => x.Auction_Round2Start).GreaterThan(X => x.Auction_Round1Ring3End);

和我得到这个错误

在不显眼的客户端验证规则验证类型名称必须是唯一的。下面的验证类型被视为不止一次:要求

我得到这条线这个错误在一个视图

  @ Html.EditorForModel()


解决方案

请确保您的没有装饰了你的视图模型类的属性与任何数据注解属性。

正确:

  [验证(typeof运算(MyViewModelValidator))]
公共类MyViewModel
{
    公众的DateTime Auction_Round1Ring1Start {搞定;组; }
    公众的DateTime Auction_Round1Ring1End {搞定;组; }    公众的DateTime Auction_Round1Ring2Start {搞定;组; }
    公众的DateTime Auction_Round1Ring2End {搞定;组; }    公众的DateTime Auction_Round1Ring3Start {搞定;组; }
    公众的DateTime Auction_Round1Ring3End {搞定;组; }    公众的DateTime Auction_Round2Start {搞定;组; }
}

错误:

  [验证(typeof运算(MyViewModelValidator))]
公共类MyViewModel
{
    [需要]
    公众的DateTime Auction_Round1Ring1Start {搞定;组; }
    公众的DateTime Auction_Round1Ring1End {搞定;组; }    公众的DateTime Auction_Round1Ring2Start {搞定;组; }
    公众的DateTime Auction_Round1Ring2End {搞定;组; }    公众的DateTime Auction_Round1Ring3Start {搞定;组; }
    公众的DateTime Auction_Round1Ring3End {搞定;组; }    公众的DateTime Auction_Round2Start {搞定;组; }
}

I have the following rules specified in my code

    RuleFor(x => x.Auction_Round1Ring1Start).GreaterThan(DateTime.Now);

    RuleFor(x => x.Auction_Round1Ring1End).GreaterThan(x => x.Auction_Round1Ring1Start);

    RuleFor(x => x.Auction_Round1Ring2Start).GreaterThan(x => x.Auction_Round1Ring1End);
    RuleFor(x => x.Auction_Round1Ring2End).GreaterThan(x => x.Auction_Round1Ring2Start);

    RuleFor(x => x.Auction_Round1Ring3Start).GreaterThan(x => x.Auction_Round1Ring2End);
    RuleFor(x => x.Auction_Round1Ring3End).GreaterThan(x => x.Auction_Round1Ring3Start);

    RuleFor(x => x.Auction_Round2Start).GreaterThan(x => x.Auction_Round1Ring3End);

And I get this error

Validation type names in unobtrusive client validation rules must be unique. The following validation type was seen more than once: required

I get this error on this line in a view

@Html.EditorForModel()

解决方案

Make sure that you haven't decorated your view model class properties with any data annotation attributes.

Correct:

[Validator(typeof(MyViewModelValidator))]
public class MyViewModel
{
    public DateTime Auction_Round1Ring1Start { get; set; }
    public DateTime Auction_Round1Ring1End { get; set; }

    public DateTime Auction_Round1Ring2Start { get; set; }
    public DateTime Auction_Round1Ring2End { get; set; }

    public DateTime Auction_Round1Ring3Start { get; set; }
    public DateTime Auction_Round1Ring3End { get; set; }

    public DateTime Auction_Round2Start { get; set; }
}

Wrong:

[Validator(typeof(MyViewModelValidator))]
public class MyViewModel
{
    [Required]
    public DateTime Auction_Round1Ring1Start { get; set; }
    public DateTime Auction_Round1Ring1End { get; set; }

    public DateTime Auction_Round1Ring2Start { get; set; }
    public DateTime Auction_Round1Ring2End { get; set; }

    public DateTime Auction_Round1Ring3Start { get; set; }
    public DateTime Auction_Round1Ring3End { get; set; }

    public DateTime Auction_Round2Start { get; set; }
}

这篇关于FluentValidation:验证类型名称必须是唯一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆