我尝试构建一个多步骤注册表单,并在整个过程中包含一个包含数据的会话。当我的应用程序首次加载时,尝试设置会话变量以供使用。但是,当我的应用程序首次加载时,我收到以下错误消息:
异常详情:
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上发布的新手。我找不到任何类似的帖子。任何建议都非常感谢。
答案 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);
}