会话变量保持为null

时间:2013-04-18 23:39:25

标签: c# asp.net-mvc

我有一个MVC项目,在其中我需要在视图之间传递变量。我正在尝试使用会话变量执行此操作,但在尝试设置它时它保持为null。我究竟做错了什么?所有这些代码都在我的控制器中。

 public string searchQ
    {
        get { return (string)Session["searchQ"]; }
        set { Session["searchQ"] = ""; }
    }

    public ActionResult Index()
    {
        Session["InitialLoad"] = "Yes";
        return View();
    }


    [HttpPost]
    public ActionResult Index(string heatSearch)
    {
        ViewBag.SearchKey = heatSearch;
        searchQ= heatSearch;
        return View();
    }



    public ActionResult Index_Perm()
    {
        ViewBag.SearchKey = searchQ;

        return View();
    }

目标是在视图之间传递搜索关键字。

1 个答案:

答案 0 :(得分:3)

问题在于你的财产制定者。

public string searchQ
{
    get { return (string)Session["searchQ"]; }
    set { Session["searchQ"] = ""; }
}

这将始终为会话变量分配一个空字符串。

它应该是这样的:

public string searchQ
{
    get { return (string)Session["searchQ"]; }
    set { Session["searchQ"] = value; }
}