我是asp.net MVC的新手。我想使用“会话”存储用户输入,但出现错误:
“名称'System.Web.HttpContext.Current.Session'在以下位置不存在 当前上下文。”
StudentController.cs中的以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Web.Mvc;
using WebAppMVC.Models;
namespace WebAppMVC.Controllers
{
public class StudentController : Controller
{
string name = "New Name";
System.Web.HttpContext.Current.Session["sessionString"] = name;
}
}
我尝试过Current.Session
,也尝试过Session
,我错过了什么或做错了什么?谢谢
答案 0 :(得分:1)
Session变量将给您错误“名称'System.Web.HttpContext.Current.Session'在当前上下文中不存在”。如果您在ActionResult方法之外使用会话变量。可以在有权访问Page.Session属性的网页类中使用会话,也可以在有权访问HttpContext.Current属性的任何类中使用会话。
因此您的代码应类似于:
public class StudentController : Controller
{
public ActionResult Index()
{
string name = "New Name";
System.Web.HttpContext.Current.Session["sessionString"] = name;
}
}
这样,您可以使用和访问会话。 相反,您可以编写:
string name = "New Name";
Session["sessionString"] = name;
并使用来访问会话变量:
var session = Session["sessionString"].ToString();
答案 1 :(得分:0)
更改自
System.Web.HttpContext.Current.Session["sessionString"] = name;
到
HttpContext.Session.SetString("sessionString", name);
或
HttpContext.Session["sessionString"] = name;
因为在Controller
类中具有属性HttpContext