0
我在我的asp.net MVC2項目所做的自定義屬性:閱讀asp.net mvc2自定義屬性中另一個屬性的值?
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class IsUsernameValidAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
{
return true;
}
var username = value.ToString();
return UserBusiness.IsUsernameValid(username)
// && value of OtherProperty == true;
}
}
的模型:
public class MyClass
{
[IsUsernameValid]
public string UserName { get; set; }
public bool OtherProperty { get; set; }
}
我可以得到用戶名的價值,但我可以得到OtherProperty的值自定義屬性裏面並用它作爲回報條款和方式。提前致謝。
你試過重寫'IsValid(Object,ValidationContext)'重載嗎? – svick
那麼,我想布爾作爲返回值,這個重載有ValidationContext返回值...任何其他幫助? – Cemsha
你肯定你不能使用下面的代碼進行驗證: 公衆覆蓋的ValidationResult的IsValid(對象的值,ValidationContext上下文) {VAR 用戶= context.ObjectInstance爲MyClass的; bool結果= ... //您的驗證邏輯在這裏 返回結果? ValidationResult.Success:new ValidationResult(FormatErrorMessage(context.DisplayName)); } – STO