使用Fluent验证验证输入字符串的某些部分

时间:2013-03-26 10:48:12

标签: c# asp.net asp.net-mvc-3 asp.net-mvc-4 fluentvalidation

我正在使用ASP.NET 4Fluent Validation

我正在尝试设置一个规则来检查我的用户名是否以“adm”开头。

我有以下内容,给我错误。我试图按照在线样本,但它不起作用:

RuleFor(x => x.UserName)
     .NotNull()
     .WithMessage("Required")
     .Must(x => x.UserName.StartsWith("adm"))
     .WithMessage("Must start with ADM");

我认为我没有正确地做到这一点?

我尝试了一下事件:

.Must(x => x.UserName.Substring(0, 3) == "adm")

两者都有错误:

Delegate 'System.Func<MyProject.ViewModels.LogOnViewModel,string,bool>' does not take 1 arguments

2 个答案:

答案 0 :(得分:4)

尝试.Must(str => str.StartsWith("adm"))

答案 1 :(得分:1)

RuleFor(f => f.UserName).NotNull();
RuleFor(f => f.UserName).Must((f, t) => f.UserName.StartsWith("adm")).WithMessage("Must start with ADM");

我是这样解决的。