У меня есть способ получить переменные сеанса, в данном случае организации. По какой-то причине, когда я вызываю метод get get, получаю организации и передавая данные методу SelectList для обработки некоторой логики именования, переменная сессии обновляется. Я не хочу обновлять значения сеанса и не понимать, что происходит. Ниже приведены все методы. Что мне не хватает?MVC 4 Session Variable обновляется, и я не знаю, как
Контроллер Метод:
public ActionResult Create()
{
SignUpEventFormModel model = new SignUpEventFormModel();
SelectListHelpers listHelper = new SelectListHelpers();
model.OrganizationList = listHelper.GetOrgSelectList(sessionRepository.GetUserSession().Organizations, null);
return View(model);
}
Get User Метод Session:
public UserSession GetUserSession()
{
UserSession us = (UserSession)HttpContext.Current.Session["UserSession"];
if (us == null)
{
string email = HttpContext.Current.User.Identity.Name;
SessionSetupRepository sessionsetupRepository = new SessionSetupRepository(new UserRepository(null, null), new SignUpRepository(), new ActivityRepository(), new OrganizationRepository());
us = sessionsetupRepository.SetupUserSession(email);
}
return us;
}
Получить Org Выбор списка Метод:
public SelectList GetOrgSelectList(IEnumerable<Organization> Orgs, int? SelectedOrgID)
{
List<Organization> OrgList = Orgs.ToList();
OrgList.Where(o => !o.IsAdmin).ToList().ForEach(o => o.Name = o.Name + " (Permission Request Required)");
if (SelectedOrgID.HasValue)
return new SelectList(OrgList, "OrganizationID", "Name", (int)SelectedOrgID);
else
return new SelectList(OrgList, "OrganizationID", "Name");
}
Вот как работают ссылочные типы в .NET. В отличие от типов значений вы передаете ссылки, а не значения. Таким образом, их имя: ссылочные типы. –
Как получить только значения и не передавать ссылку? Обратите внимание: я использую Ninject для ввода репозитория сеансов. – scottrakes