2011-12-21 2 views
1

У меня есть способ получить переменные сеанса, в данном случае организации. По какой-то причине, когда я вызываю метод 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"); 
     } 
+0

Вот как работают ссылочные типы в .NET. В отличие от типов значений вы передаете ссылки, а не значения. Таким образом, их имя: ссылочные типы. –

+0

Как получить только значения и не передавать ссылку? Обратите внимание: я использую Ninject для ввода репозитория сеансов. – scottrakes

ответ

2

Создал параметр IList и преобразовал организации в список.