无法在ASP MVC项目中设置“会话”

时间:2019-03-15 06:06:39

标签: c# asp.net-mvc

我是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,我错过了什么或做错了什么?谢谢

2 个答案:

答案 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