将 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() 之后才能按预期工作。
我想使用 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() 之后才能按预期工作。