我有一个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();
}
目标是在视图之间传递搜索关键字。
答案 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; }
}