以下のセッションコードに情報を保存するか、以下に示すようにコントローラーアクションに属するか、それともモデルの一部にする必要があるか、少し混乱していますか?
後でこのセッション値を読み取る他のコントローラー メソッドがあることを付け加えておきます。
public ActionResult AddFriend(FriendsContext viewModel)
{
if (!ModelState.IsValid)
{
return View(viewModel);
}
// Start - Confused if the code block below belongs in Controller?
Friend friend = new Friend();
friend.FirstName = viewModel.FirstName;
friend.LastName = viewModel.LastName;
friend.Email = viewModel.UserEmail;
httpContext.Session["latest-friend"] = friend;
// End Confusion
return RedirectToAction("Home");
}
以下のようなことを行う静的ユーティリティ クラスをモデルに追加することを考えましたが、別のファイルに 2 行のコードを追加するのはばかげているようです。
public static void SaveLatestFriend(Friend friend, HttpContextBase httpContext)
{
httpContext.Session["latest-friend"] = friend;
}
public static Friend GetLatestFriend(HttpContextBase httpContext)
{
return httpContext.Session["latest-friend"] as Friend;
}