Ответ 1
Вы можете предотвратить выполнение метода действия, назначив ActionResult filterContext.Result. Например:
filterContext.Result = new RedirectResult(urlToRedirectTo);
Я пытаюсь выполнить перенаправление из атрибута метода. Кажется, это работает:
public class MyAttribute: ActionFilterAttribute {
[..]
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
[..]
filterContext.HttpContext.Response.Redirect(urlToRedirectTo, true);
[..]
Единственная проблема заключается в том, что перенаправление выполняется после завершения метода, к которому он привязан, в то время как я хотел бы, чтобы перенаправление предотвращало выполнение метода.
Любая помощь? Благодаря
Вы можете предотвратить выполнение метода действия, назначив ActionResult filterContext.Result. Например:
filterContext.Result = new RedirectResult(urlToRedirectTo);
Вам нужно добавить
filterContext.HttpContext.Response.End();
РЕДАКТИРОВАТЬ: Верх не прав, нижний правый
это должно работать
filterContext.Result = new RedirectResult(UrlToRedirectTo);
если вы вернете ActionResult, тогда он будет выполнен как instaed самого действия, поэтому он должен пропустить действие.