如何在asp.net mvc4中使用会话,Tempdata

时间:2015-08-06 13:14:46

标签: c# asp.net asp.net-mvc asp.net-mvc-4 session

我正在使用mvc 4架构的asp.net工作。这里我有两个控制器显示和SessionEx。在显示控制器中,我有一个如下方法

public ActionResult SessionExample()
{
    TempData["FortheFullRequest"] = "FortheFullRequest";

    string v = Session["Session1"].ToString();

    ViewData["Myval"] = "ControllertoView";

    ViewBag.MyVal = "ControllertoView";

    Session["Testing1"] = "Testing Session";

    return RedirectToAction("SomeOtherAction", "SessionEx");
}

在SessionEx控制器中,我有如下方法

public ActionResult SomeOtherAction()
{
    string str1 = Convert.ToString(Session["Testing1"]);
    string str2 = Convert.ToString(TempData["FortheFullRequest"]);

    return View();
}

我正在调试项目,我还使用watch来查看tempdata和session中的获取。在session和tempdata中启动适当的值但是当光标到达RedirectToAction方法时,所有值都存储在session中,tempdata变为null。请在这里帮助我。

1 个答案:

答案 0 :(得分:0)

如果要存储在重定向到另一个操作方法后将使用的数据,请使用Session

TempData主要用于此this SO question

中讨论的一次性,短期请求

您可能会在重定向到SomeOtherAction()之后发现TempData中的数据不存在,这是TempData的工作原理。

老实说,我从不使用TempData,我自己也没有看到这一点。