【发布时间】:2020-02-05 14:39:00
【问题描述】:
我想使用 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"] 始终为空。
我关注了这个article
【问题讨论】:
-
我已经尝试在 OnActionExecuting 方法中获取 TempData。但我仍然为空。
-
您是否在
Startup配置中使用services.AddSession()和app.UseSession()? -
是的,我在我的启动配置中都使用了。
-
@TristanSébillet 试试
TempData.Keep或TempData.Peek看看会不会有什么不同 -
两种都试过了,没什么区别。
标签: c# .net-core viewbag action-filter tempdata