내 ASP.NET MVC 프로젝트의 경우 사용자 지정 유효성 검사 특성을 만들었습니다. 나는 쿼리 문자열에 속성 이름을 추가하는 것을 시도하고있는 fullUrl
변수에 대한사용자 지정 유효성 검사 : validationContext에서 속성 이름 가져 오기
:
protected override ValidationResult IsValid(object value, ValidationContext validationContext) {
//Here I need to resolve the url in order to make a call to that controller action and get the JSON result back
var httpContext = new HttpContextWrapper(HttpContext.Current);
var urlHelper = new UrlHelper(
new System.Web.Routing.RequestContext(
httpContext, new System.Web.Routing.RouteData()
)
);
var url = urlHelper.Action(Action, Controller, null,
urlHelper.RequestContext.HttpContext.Request.Url.Scheme);
var fullUrl = string.Format("{0}?{1}={2}", url,
/*validationContext.MemberName*/"term", value);
if (!GetResult(fullUrl)) {
var message = FormatErrorMessage(validationContext.DisplayName);
return new ValidationResult(message);
}
return null;
}
당신은 아래 링크에서 전체 코드를 볼 수 있습니다 여기에 내가 고민하고있는 코드는 하지만 validationContext.MemberName
을 사용하면 실패합니다. 임시 수정으로 문제를 "용어"로 고정시킴으로써 해결했지만 수정이 전혀 아닙니다.
그렇다면 validationContext
에서 속성 이름을 검색하는 방법은 무엇입니까?
동일한 문제가 있습니다. 나는 더 나아가 유효성 검사중인 속성에 대한 모든 CustomAttributes를 얻고 싶습니다. 안타깝게도 validationContext는이 정보를 얻기 위해 사용할 수있는 프로퍼티/메소드를 포함하고 있지 않습니다. – Peter
자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/questions/7447932/mvc-3-model-validation-issue-oversight-or-by-design –