Validation Fluent验证比较字段字符串格式参数
我有两个属性电子邮件和确认电子邮件。如何为两个本地化属性名提供字符串格式参数 例如:Validation Fluent验证比较字段字符串格式参数,validation,asp.net-mvc-4,server-side,fluent,fluentvalidation,Validation,Asp.net Mvc 4,Server Side,Fluent,Fluentvalidation,我有两个属性电子邮件和确认电子邮件。如何为两个本地化属性名提供字符串格式参数 例如: public class Account { public string Email {get;set;} public string ConfirmEmail {get;set;} } Public AccountValidator : AbstractValidator<Account> { public AccountValidator() { RuleFo
public class Account
{
public string Email {get;set;}
public string ConfirmEmail {get;set;}
}
Public AccountValidator : AbstractValidator<Account>
{
public AccountValidator()
{
RuleFor(a=> a.Email)
.Equal(a=>a.ConfirmEmail)
.WithLocalizedMessage(() => MyResource.compareFields);
}
}
公共类帐户
{
公共字符串电子邮件{get;set;}
公共字符串确认邮件{get;set;}
}
公共AccountValidator:AbstractValidator
{
公共帐户验证程序()
{
规则(a=>a.Email)
.Equal(a=>a.ConfirmEmail)
.WithLocalizedMessage(()=>MyResource.compareFields);
}
}
我的资源文件包含如下消息:-
“{PropertyName}”和“{???}”字段不匹配。
我应该用什么???所以它说:
“电子邮件”和“确认邮件”字段不匹配。解决此问题的一种方法是在邮件中定义自定义参数:
{0}
。因此,在您的资源文件中,您的消息将如下所示
'{PropertyName}' and '{0}' fields do not match.
并将“ConfirmEmail”
作为额外参数传递给WithLocalizedMessage调用:
RuleFor(a => a.Email)
.Equal(a => a.ConfirmEmail)
.WithLocalizedMessage(() => MyResource.compareFields, "ConfirmEmail");