控制器执行的哪一点是TempData填充的

Chr*_*ris 1 asp.net-mvc razor asp.net-mvc-3

我的控制器有一个基类.在基类的构造函数中,我试图从TempData填充ViewBag属性.但是,似乎TempData在此时没有填充,也不在OnBeginExecute方法中.

我需要在基类中填充此ViewBag属性,因为所有控制器都需要相同的变量(它是重定向消息).

我可以使用哪个覆盖基类中的Controller来执行此操作?

Dar*_*rov 5

TempData以及任何与HttpContext相关的东西在控制器构造函数中不可用.您可以从Initialize方法开始使用它们.因此,如果您需要以全局方式为控制器填充它们,请覆盖此方法或编写自定义操作筛选器并使用它来装饰控制器:

public class HomeController: Controller
{
    protected override void Initialize(RequestContext requestContext)
    {
        base.Initialize(requestContext);
        // now you can access the HttpContext
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)