我試圖擺脫MVC框架的束縛,所以請耐心等待?,F(xiàn)在,我使用會話存儲的唯一一件事就是存儲當前登錄的用戶。我的網(wǎng)站很簡單。對于此示例,請考慮三個域對象,人員,會議和文件。用戶可以登錄并查看會議的“僅成員”個人資料,并可以向其中添加文件,或者如果未登錄,則可以查看會議的公開“個人資料”。因此,從會議的專用個人資料中,在具有登錄用戶的情況下,我具有“添加文件”鏈接。此鏈接路由到FileContoller.Add(int meetingId)。通過此操作,我可以使用會議ID獲取用戶要向其添加文件的會議,但是在表單發(fā)布后,我仍然需要知道用戶向其添加文件的會議。這就是我的問題所在,我應該通過TempData通過“當前與之交互”會議,還是將其添加到Session存儲中?這是我目前具有“添加”操作設置的方式,但無法正常工作: public ActionResult Add(int meetingId) { try { var meeting = _meetingsRepository.GetById(meetingId); ViewData.Model = meeting; TempData[TempDataKeys.CurrentMeeting] = meeting; /* add to tempdata here */ } catch (Exception) { TempData[TempDataKeys.ErrorMessage] = "Unable to add files to this meeting."; return RedirectToRoute("MeetingsIndex"); } return View(); } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Add(FormCollection form) { var member = Session[SessionStateKeys.Member] as Member; var meeting = TempData[TempDataKeys.CurrentMeeting] as Meeting; /* meeting ends up null here */ if (member == null) { TempData[TempDataKeys.ErrorMessage] = "You must be logged in to add files to an meeting."; return RedirectToRoute("LoginPage"); } if (meeting == null) { TempData[TempDataKeys.ErrorMessage] = "An error occurred. No meeting selected."; return RedirectToRoute("MeetingsIndex"); } // add files to meeting TempData[TempDataKeys.Notification] = "Successfully added."; return RedirectToRoute("AddFiles", new {meetingId = meeting.MeetingId});}編輯: 根據(jù)大多數(shù)答案,是否可以提供任何示例說明應將哪種數(shù)據(jù)(消息除外)存儲在TempData vs Session中?
- 3 回答
- 0 關注
- 518 瀏覽
添加回答
舉報
0/150
提交
取消