C# 如何在Fluent验证中根据字符串列表验证字符串?
我有一个电子邮件地址字段,其中客户端验证不允许使用tempmailder.com或dispostable.com等少数临时域 在服务器端,我使用了fluent验证来指定验证规则 web.config文件中不允许以逗号分隔的字符串形式显示的临时域 我是否可以指定一种方法来验证用户根据不允许的电子邮件域列表输入的值C# 如何在Fluent验证中根据字符串列表验证字符串?,c#,.net,validation,model-view-controller,fluentvalidation,C#,.net,Validation,Model View Controller,Fluentvalidation,我有一个电子邮件地址字段,其中客户端验证不允许使用tempmailder.com或dispostable.com等少数临时域 在服务器端,我使用了fluent验证来指定验证规则 web.config文件中不允许以逗号分隔的字符串形式显示的临时域 我是否可以指定一种方法来验证用户根据不允许的电子邮件域列表输入的值 RuleFor(x=>x.EMail). and something 谢谢您可以实现如下功能: public class MyObjValidator : AbstractVa
RuleFor(x=>x.EMail). and something
谢谢您可以实现如下功能:
public class MyObjValidator : AbstractValidator<MyObj> {
public MyObjValidator()
{
// Other rules for my object
// .
// .
RuleFor(o => o.Email)
.NotEmpty()
.Must(BeNonBannedDomain)
.WithMessage("Please specify a valid email address");
}
private bool BeNonBannedDomain(string email)
{
var domainName = GetDomainName(email); // a method to extract the dmain name from the email
return !someListOfBannedDomains.Contains(domainName); // a list of all the banned domains that I need to check against.
}
}
公共类MyObjValidator:AbstractValidator{
公共验证器()
{
//我的对象的其他规则
// .
// .
规则(o=>o.Email)
.NotEmpty()
.必须(贝农班纳多曼)
.WithMessage(“请指定有效的电子邮件地址”);
}
私人bool BeNonBannedDomain(字符串电子邮件)
{
var domainName=GetDomainName(email);//从电子邮件中提取dmain名称的方法
return!someListofBanneddomans.Contains(domainName);//我需要检查的所有禁用域的列表。
}
}
希望这能有所帮助。好吧,您可以实现如下功能:
public class MyObjValidator : AbstractValidator<MyObj> {
public MyObjValidator()
{
// Other rules for my object
// .
// .
RuleFor(o => o.Email)
.NotEmpty()
.Must(BeNonBannedDomain)
.WithMessage("Please specify a valid email address");
}
private bool BeNonBannedDomain(string email)
{
var domainName = GetDomainName(email); // a method to extract the dmain name from the email
return !someListOfBannedDomains.Contains(domainName); // a list of all the banned domains that I need to check against.
}
}
公共类MyObjValidator:AbstractValidator{
公共验证器()
{
//我的对象的其他规则
// .
// .
规则(o=>o.Email)
.NotEmpty()
.必须(贝农班纳多曼)
.WithMessage(“请指定有效的电子邮件地址”);
}
私人bool BeNonBannedDomain(字符串电子邮件)
{
var domainName=GetDomainName(email);//从电子邮件中提取dmain名称的方法
return!someListofBanneddomans.Contains(domainName);//我需要检查的所有禁用域的列表。
}
}
希望这有帮助。RuleFor(x=>listOfBannedDomains.Contains(GetDomainFromEmail(x.Email))==false)代码>RuleFor(x=>listOfBannedDomains.Contains(GetDomainFromEmail(x.Email))==false)代码>