Evg*_*nyt 7 asp.net validation asp.net-mvc
我正在尝试添加CustomValidation并使其返回错误
Html.ValidationMessageFor(m => m.SubleaseCompany)
[CustomValidation(typeof(CreateSpaceModelValidation), "ValidateCreateSpaceModel")]
public class CreateSpaceModel
{
public Building Building { get; set; }
public Space Space { get; set; }
public string SubleaseCompany { get; set; }
}
public class CreateSpaceModelValidation
{
public static ValidationResult ValidateCreateSpaceModel(CreateSpaceModel model)
{
return new ValidationResult("You should specify Sublease Contact", new[] { "SubleaseCompany" }).;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用ValidationResult构造函数(memberNames)的第二个参数,但这似乎不起作用.
看起来MVC团队从未实现过MemberNames参数的功能.请参阅以下文章.... http://devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2
在某些情况下,您可能想要使用ValidationResult的第二个构造函数重载,它接受IEnumerable的成员名称.例如,您可能决定要在两个要比较的字段上显示错误消息,因此您将代码更改为:
Run Code Online (Sandbox Code Playgroud)return new ValidationResult( FormatErrorMessage(validationContext.DisplayName),
new [] {validationContext.MemberName,OtherProperty});
如果你运行你的代码,你会发现绝对没有区别.这是因为尽管存在这种重载并且可能在.NET框架的其他地方使用,但MVC框架完全忽略了ValidationResult.MemberNames.
归档时间: |
|
查看次数: |
1356 次 |
最近记录: |