2

在我的 OnActionExecuting 事件中,我想重定向到控制器操作方法,但似乎我必须传递 URL。

我不想硬编码一个 url,特别是当我不知道根 URL 时,即它可能是一个子域或其他东西。

filterContext.Result = new RedirectResult("/home/contact");

是否有一些我遗漏的重载可以重定向到操作?

4

4 回答 4

8

我认为你应该能够得到一个UrlHelper.

var Url = new UrlHelper(filterContext.RequestContext);
var url =  Url.Action("Contact", "Home");
filterContext.Result = new RedirectResult(url);

或者您可以使用 aRedirectToRouteResult并命名您的路线。(这似乎是一个更好的答案)。

于 2013-11-11T16:17:05.157 回答
0

您可以实例化一个UrlHelper实例并让它为您创建 URL。

于 2013-11-11T16:19:56.780 回答
0

像这样;

 if (filterContext.ExceptionHandled) return;

        Exception ex = filterContext.Exception;

        filterContext.Result = new ViewResult
        {
            ViewName = "~/Views/Shared/HataVer.cshtml"
        };

        filterContext.ExceptionHandled = true;



        return;
于 2018-02-21T15:30:54.260 回答
-1

请尝试使用这个:

filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "NameOfYourAction" controller = "NameOfYourController" }));
于 2017-03-22T16:53:29.323 回答