@tost84

Как лучше сделать в MVC подобее Url.Action в аттрибуте на server side?

Как лучше сделать в MVC подобее Url.Action в аттрибуте на server side?
Нужно писать метод который принимает UrlActionDescriptor и возвращает уже string или есть решение по лучше?

filterContext.Result = new RedirectResult(Url.Action(NameHelper.CustomName));
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Перенаправление можно выполнить примерно так:

HttpContext.Current.Response.RedirectToRoute
(
  new 
  { 
    controller = "Home", 
    action = "Index" 
  }
);

Лучше сделать вспомогательный класс и соответствующие методы для этого.

Маршруты можно найти в System.Web.Routing.RouteTable.Routes.

Данные текущего маршрута:

var routeData = ((System.Web.Mvc.MvcHandler)HttpContext.Current.Handler).RequestContext.RouteData;

Сделать экземпляр UrlHelper для контекста текущего запроса можно следующим образом:

var urlHelper = new System.Web.Mvc.UrlHelper(HttpContext.Current.Request.RequestContext);
var url = urlHelper.Action("Index", "Home");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы