mvc3validation检查属性值是否不同"NewPassword",ErrorMessage="新密码和确认密码不匹配。")]publicstringConfirmPassword{得到;放;有没有办法检查两个属性是否不同,就像下面的假设代码一样?[CheckPropertiesDiffer("OldPassword",ErrorMessage="新旧密码不能相同")]publicstringOldPassword{get;放;}publicstringConfirmPassword{get;放;以下是您可以在模型中使用的内容:publicstringOldPassword[NotEqualTo("OldPassword",ErrorMessage="旧密码和新密码不能相同。")]publicstringNewPassword{get;放;}然后定义以下自定义属性:publicclassNotEqualToAttribute:ValidationAttribute{privateconststringdefaultErrorMessage="{0}不能与{1}相同。";私有字符串其他属性;publicNotEqualToAttribute(stringotherProperty):base(defaultErrorMessage){if(string.IsNullOrEmpty(otherProperty)){thrownewArgumentNullException("otherProperty");}this.otherProperty=otherProperty;}publicoverridestringFormatErrorMessage(stringname){returnstring.Format(ErrorMessageString,name,otherProperty);}protectedoverrideValidationResultIsValid(objectvalue,ValidationContextvalidationContext){if(value!=null){PropertyInfootherPropertyInfo=validationContext.ObjectInstance.GetType().GetProperty(otherProperty);if(otherPropertyInfo==null){returnnewValidationResult(string.Format("Property'{0}'isundefined.",otherProperty));}varotherPropertyValue=otherPropertyInfo.GetValue(validationContext.ObjectInstance,null);if(otherPropertyValue!=null&&!string.IsNullOrEmpty(otherPropertyValue.ToString())){if(value.Equals(otherPropertyValue)){返回新的ValidationResult(this.FormatErrorMessage(validationContext.DisplayName));}}}返回ValidationResult.Success;}}我会检查控制器在控制器中:if(model.ConfirmPassword==model.OldPassword){ModelState.AddModelError("ConfirmPassword","旧密码和新密码不能相同");在视图中:@Html.ValidationMessage("ConfirmPassword")希望这有助于您也可以在此处的说明中实现类级别验证:http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-AspnetMVC-3.aspx基本上你实现了IValidatableObject的Validate方法,你可以访问你想要的任何属性。publicclassMyClass:IValidateableObject{publicstringNewPassword{get;放;}publicstringOldPassword{get;放;}publicIEnumerableValidate(ValidationContextcontext){if(NewPassword==OldPassword)yieldreturnnewValidationResult("密码不应该相同");我不认为已经有提供此功能的内置属性。最好的方法是按照此处所述创建自己的自定义属性:http://www.codeproject.com/KB/aspnet/CustomValidation.aspx以上是C#学习教程的全部内容:mvc3validation检查属性值是否为不同的是,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
