Не удается установить «Session» в проекте ASP MVC

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

Я новичок в asp.net MVC. Я хочу использовать «Session» для хранения пользовательского ввода, но я получаю сообщение об ошибке:

«Имя ‘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 Что я пропускаю или делаю неправильно? Спасибо

Ответ №1:

Переменная сеанса выдаст вам сообщение об ошибке «Имя ‘System.Web.HttpContext.Current.Session’ не существует в текущем контексте.» если вы используете переменную 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. Это помогает мне.

Ответ №2:

Изменить с

 System.Web.HttpContext.Current.Session["sessionString"] = name;
  

Для

 HttpContext.Session.SetString("sessionString", name);
  

или

 HttpContext.Session["sessionString"] = name;
  

Потому что в Controller классе есть свойство HttpContext

Комментарии:

1. пожалуйста, запустите nuget для asp.net mvc dll с помощью установочного пакета Microsoft. AspNet.Mvc

2. @Hien Nguyen Все работает не так, это должно быть в соответствующем разделе для использования.