Session["User.Project"] = "Привет";string test = Session["User.Project"];var context = HttpContext.Current
context.Session["user_id"] = id;
var id = (int) context.Session["user_id"];
По вопросу, почему null - может напутали чего.
Например, на снимке имя параметра сессии User_Project, а в тексте вопроса: User.Project. И тип данных разный.
Если нет, то поведение Session вы намерено не настраивали? Cookies у клиента нормально работают?
Ну и глупый вопрос, вы уверены, что между переходом от метода, в котором создается сессия, к следующему методу проект не перекомпилируется? :-)
Еще один вопрос, если сессия возвращает тип object, то почему вы пишите string test = Session["User.Project"]; Действительно такой код используете, или это просто ошибка в тексте вопроса?
// Первый метод контроллера
Session["User_Project"] = "привет";// Второй метод
string result = Session["User_Project"];
А применении точки в названии ключа сессии приводит к возвращению объекта?
Я обычно пишу на php и там нету проблем в названии ключа для сессии, с точкой или нижнем дефисом, поэтому я предположил что здесь тоже нет разницы.
Или как вы определили, что сессия возвращает объект?
Я банально создал две страницы. При вызове первой, данные сохраняются в сессии.
Значит значение будет храниться в виде строки? Зачем мы еще используем ToString? Мы же не объект храним? Или я не прав?
// переменная sessionItem типа object
// может использоваться для хранения любых типов данных
object sessionItem = "Привет";
// переменная test типа string
// преобразуем sessionItem в строку
string test = sessionItem.ToString();
sessionItem = 123;
// переменная num типа int
// преобразуем sessionItem в int
int num = (int)sessionItem;
Session["privet"] = "Привет";
Response.Redirect("~/General/Services", false);
return View();