Geo*_*Geo 3 asp.net-mvc session
在尝试从构造函数中获取存储在Session ["objectName"]上的信息时使用ASP.NET MVC,我看到Session尚未设置,但是一旦构造了控制器,Session就会包含正确的信息.
public class ABCController : Controller
{
public ABCController() { var tmp = Session["Whatever"]; } //This line is null
//But I know it has information
public ActionResult Index() { var tmp = Session["Whatever"]; } //This works fine
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Chr*_*467 13
覆盖Controller基类的Initialize方法.请求上下文将传递给此方法.会话上下文是请求上下文的一部分.
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
var tmp = requestContext.HttpContext.Session["Whatever"];
}
Run Code Online (Sandbox Code Playgroud)
在创建控制器之后和调用action方法之前调用此方法.
会话在HttpContext中找到.HttpContext作为ControllerContext的一部分提供给控制器.由于ControllerContext不作为参数传递给构造函数,因此在创建类并分配了ControllerContext之后,它才可用.但是,它应该可用于控制器上的任何方法.我不确定如何在调用类构造函数之前填充类的属性(除非它们是静态类属性,但这不是这里的情况).
| 归档时间: |
|
| 查看次数: |
4029 次 |
| 最近记录: |