Разрешение URL-адресов из значений маршрутов на стороне сервера - PullRequest
4 голосов
/ 06 ноября 2011

Я пытаюсь создать атрибут ValidationAttribute (для удаленной проверки, который работает только на стороне сервера) и внутри метода IsValid мне нужно разрешить URL-адрес из значений URL-маршрута. Вот моя первоначальная настройка:

public class ServerSideRemoteAttribute : ValidationAttribute {

    public string Controller { get; set; }
    public string Action { get; set; }
    public object RouteValues { get; set; }

    public ServerSideRemoteAttribute(string controller, string action) {

        this.Controller = controller;
        this.Action = action;
    }

    public ServerSideRemoteAttribute(string controller, string action, object routeValues) {

        this.Controller = controller;
        this.Action = action;
        this.RouteValues = routeValues;
    }

    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

        return base.IsValid(value, validationContext);
    }
}

Есть мысли?

1 Ответ

7 голосов
/ 06 ноября 2011
var httpContext = new HttpContextWrapper(HttpContext.Current);
var urlHelper = new UrlHelper(new RequestContext(httpContext, new RouteData()));
var url = urlHelper.Action(Action, Controller, RouteValues);
...