1

OnActionExecuting()オーバーライドされたで発生したアクションを取得しようとしていActionFilterAttributeます。アイデアは、これをセッションに保存して、暫定的な「パスワードの変更」ページに入った後にユーザーが目的のページにリダイレクトできるようにすることです。

私の現在の試みは:

public override void OnActionExecuting(ActionExecutingContext actionExecutingContext)
{
    // ...
    ActionResult originatingActionResult = new RedirectToRouteResult(
        new RouteValueDictionary
        {
            { "controller", actionExecutingContext.ActionDescriptor.ControllerDescriptor.ControllerName },
            { "action", actionExecutingContext.ActionDescriptor.ActionName }
        });
    // ...

しかし、これは何が行われているのかかなり複雑に思えます - もっと簡単な方法はありますか?

4

1 に答える 1

0

次のように簡略化できることが判明しました。

ActionResult originatingActionResult = new RedirectToRouteResult(
        new RouteValueDictionary(filterContext.RouteData.Values));

でも...

プロジェクトは T4MVC をRedirectToAction使用しており、コントローラーでオーバーライドされておりGetT4MVCResult()ActionResult.

そのため、代わりに次のようにしました。

RouteValueDictionary originatingRouteValues = new RouteValueDictionary(
    actionExecutingContext.RouteData.Values);

// ... followed by ...

return this.RedirectToRoute(routeValues);
于 2013-04-23T11:39:51.633 に答える