Перенаправление в фильтре пользовательских действий - PullRequest
0 голосов
/ 08 мая 2018

Я создаю пользовательский фильтр в asp.net MVC 5, и я пытаюсь перенаправить на определенный контроллер в методе On Action Executing Я пробовал Redirect To Action, и это не работает какое-либо предложение? я использую этот фильтр в контроллере веб-API вот мой код:

public override void OnActionExecuting(HttpActionContext actionContext)
{
    Uri MyUrl = actionContext.Request.RequestUri;
    var host = MyUrl.Host;

    if (host == "localhost")
    {
       // redirect should be here
    }
}

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Для WebApi вы можете использовать Свойство HttpActionContext.Response :

public override void OnActionExecuting(HttpActionContext actionContext)
{
    var response = actionContext.Request.CreateResponse(HttpStatusCode.Redirect);
    response.Headers.Location = new Uri("https://www.example.com");
    actionContext.Response = response;
 }
0 голосов
/ 08 мая 2018

Если вы используете MVC 5.2.3, ваш фильтр действий должен выглядеть следующим образом.

 public class CustomActionFilter : ActionFilterAttribute, IActionFilter
    {
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {

        }
    }

Для перенаправления на действие вы можете использовать код, подобный следующему.

 filterContext.Result =
            new RedirectToRouteResult(
                   new RouteValueDictionary
                        {
                            { "controller", "ControllerName" },
                            { "action", "Action" }
                        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...