1
我有一個方法來檢索會話變量,在這種情況下組織。出於某種原因,當我調用get會話方法get Organizations並將數據傳遞給SelectList方法來處理某些命名邏輯時,會話變量正在更新。我不希望更新會話值,也不瞭解發生了什麼。以下是所有的方法。我錯過了什麼?MVC 4會話變量得到更新,我不知道如何
控制器的方法:
public ActionResult Create()
{
SignUpEventFormModel model = new SignUpEventFormModel();
SelectListHelpers listHelper = new SelectListHelpers();
model.OrganizationList = listHelper.GetOrgSelectList(sessionRepository.GetUserSession().Organizations, null);
return View(model);
}
得到用戶的會話方法:
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;
}
獲取組織選擇列表方法:
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中的工作方式。與您傳遞引用而不是值的值類型相反。因此他們的名字是:引用類型。 – 2011-12-22 08:22:45
如何獲取剛纔的值並且不通過參考?請注意,我正在使用Ninject來注入會話存儲庫。 – scottrakes 2011-12-22 15:02:02