1

セッション変数(この場合は組織)を取得するメソッドがあります。何らかの理由で、getsessionメソッドをgetOrganizationsと呼び、データをSelectListメソッドに渡して名前付けロジックを処理すると、セッション変数が更新されます。セッション値を更新したくなく、何が起こっているのか理解できません。以下はすべての方法です。私は何が欠けていますか?

コントローラ方式:

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");
        }
4

1 に答える 1

2

IListパラメーターを作成し、組織をリストに変換しました。

于 2012-01-01T15:36:04.950 に答える