1

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

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

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

4

1 回答 1

3

问题出在您的属性设置器中。

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

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

它应该如下所示:

public string searchQ
{
    get { return (string)Session["searchQ"]; }
    set { Session["searchQ"] = value; }
}
于 2013-04-18T23:40:45.440 回答