将 TempData 传递给 ActionFilter RedirectToAction

Pass TempData to ActionFilter RedirectToAction

我想使用 ActionFilter 为第一个动作的第二个动作设置一个 ViewBag。

在第一个操作中,我执行以下操作:

TempData["Test"] = "Test"; 
return RedirectToAction("Action2", new { values = values });

然后在 IActionFilter 中:

public class HelpertestActionFilter : IActionFilter
{
    public void OnActionExecuted(ActionExecutedContext context)
    {
    }

    public void OnActionExecuting(ActionExecutingContext context)
    {
        var controller = context.Controller as Controller;
        if (controller != null)
        {
            if (controller.TempData["Test"] != null)
            {
                controller.ViewBag.Notification = controller.TempData["Test"];
            }
        }
    }
}

但在 ActionFilter OnActionExecuting 中,TempData["Test"] 始终为 null。

我已经关注了这个article

经过一些尝试,我的代码没有错误,除了启动配置。

在 Startup.Configure() 中,app.UseCookiePolicy() 必须在 app.UseMVC() 之后才能按预期工作。