'会话状态在此上下文中不可用。'来自HttpApplication()。会话调用

时间:2015-08-13 21:32:29

标签: c# asp.net-mvc-5

我尝试构建一个多步骤注册表单,并在整个过程中包含一个包含数据的会话。当我的应用程序首次加载时,尝试设置会话变量以供使用。但是,当我的应用程序首次加载时,我收到以下错误消息:

异常详情:

System.Web.HttpException: Session state is not available in this context.

来源错误:

HttpSessionState session = new HttpApplication().Session;

我的控制器操作如下:

public class RegistrationController : Controller
{
    // GET: Registration
    [HttpGet]
    public ActionResult Index()
    {
        HttpSessionState session = new HttpApplication().Session;

        CustomerStatusModel model = new CustomerStatusModel();
        model.CustomerStatusId = session["CustomerStatusId"];

        return View(model);
    }
}

我是MVC 5的新手,也是在StackOverflow上发布的新手。我找不到任何类似的帖子。任何建议都非常感谢。

2 个答案:

答案 0 :(得分:2)

如果您想致电model并且您没有处理某项行动,例如。您可以使用

访问某个属性
Session

答案 1 :(得分:1)

您无法通过创建新的Session来访问HttpApplication

直接访问Session,因为它是Controller类的属性。

public ActionResult Index()
{
    //DON'T DO THIS
    //HttpSessionState session = new HttpApplication().Session;

    CustomerStatusModel model = new CustomerStatusModel();

    //USE this.Session INSTEAD
    model.CustomerStatusId = Session["CustomerStatusId"]; 

    return View(model);
}