Когда использовать TempData vs Session в ASP.Net MVC

Я пытаюсь освоить MVC Framework, так что терпите меня.

Прямо сейчас, единственное, что яm использует хранилище сеансов для сохранения текущего вошедшего в систему пользователя. Мой сайт прост. В этом примере рассмотрим три объекта домена: Person, Meeting и File. Пользователи могут войти и просмотреть "только для членов" профиль встречи и можете добавлять к ней файлы или просматривать собрание »с публикой "профиль" если они неЯ вошел.

Итак, со встречис личным профилем, с зарегистрированным пользователем, у меня есть "добавить файлы" ссылка на сайт. Эта ссылка ведет к FileContoller.Add (int meetingId). Из этого действия я получаю собрание, к которому пользователь хочет добавить файлы, используя идентификатор собрания, но после публикации формы мне все еще нужно знать, к какому собранию пользователь добавляет файлы. Тот'где мой вопрос, я должен пройтив настоящее время взаимодействует с " встреча через TempData или добавить его в хранилище сеансов?

Вот так у меня сейчас есть настройка Add action, но этоне работает:

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

Редактировать:

Основываясь на большинстве ответов, может ли кто-нибудь привести примеры того, какие данные (кроме сообщений) следует хранить в TempData vs Session?

Ответы на вопрос(7)

Ваш ответ на вопрос