FluentValidation:验证类型名称必须是唯一 [英] FluentValidation: validation type names must be unique
本文介绍了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屋!
查看全文