#c# #session #.net-core #asp.net-core-mvc #session-variables
Вопрос:
Я хочу перейти к профилю каждого ученика, а затем выполнить какое-либо действие для каждого использования, например (Редактировать, добавить класс,…).
Получил этот URL /students/profile/1
-адрес для профиля студента.
Я хочу перейти на профили для 3 студентов:
- Студент 1
/students/profile/1
- Студент 2
/students/profile/2
- Студент 3
/students/profile/3
Profile
способ действия:
public IActionResult Profile(long? id)
{
HttpContext.Session.SetInt32(".ProfileStudent.StudentId", id); // set session
return View();
}
Если мне нужны данные для студента для данного идентификатора в идентификаторе сеанса:
URL => /students/profile/1
public IActionResult EditInfo()
{
var id = HttpContext.Session.GetInt32(".ProfileStudent.StudentId");
var student = db.Student.Find(id);
return View(student );
}
URL => /students/profile/2
public IActionResult EditInfo()
{
var id = HttpContext.Session.GetInt32(".ProfileStudent.StudentId");
var student = db.Student.Find(id);
return View(student );
}
Теперь данные конфликтуют и возвращают сеанс последнего значения.
Как получить сеанс данных для каждого пользователя на вкладке браузера?
Комментарии:
1. сеанс предназначен для каждого пользователя. не для таба. почему вы не используете параметр?
2. Мой пример прост только для объяснения, нужна сессия на вкладке
3. Пожалуйста, прочтите meta.stackexchange.com/questions/66377/what-is-the-xy-problem
Ответ №1:
Я бы настоятельно не советовал хранить и использовать параметры таким образом по нескольким причинам, и открытие нескольких вкладок в любом случае не решит вашу проблему. Просто передайте методу определенный идентификатор в качестве параметра EditInfo
, чтобы вы могли использовать несколько вкладок одновременно.
public IActionResult EditInfo(int id)
{
var student = db.Student.Find(id);
return View(student );
}
Комментарии:
1. Мой пример прост только для объяснения, нужна сессия для каждой вкладки, которую вы можете видеть, например, в группе Facebook есть какое-то действие, а не каждая вкладка объединена