Asp.net mvc 单击“上一步”按钮后,保留搜索数据
我有一个索引操作及其对应的页面。Asp.net mvc 单击“上一步”按钮后,保留搜索数据,asp.net-mvc,session,search,back,Asp.net Mvc,Session,Search,Back,我有一个索引操作及其对应的页面。 控制器 public ActionResult Index(int? page, string searchString, string searchField) { var data = --data from db-- ViewBag.searchString = searchString; ViewBag.searchField = searchField; int p
控制器
public ActionResult Index(int? page, string searchString, string searchField)
{
var data = --data from db--
ViewBag.searchString = searchString;
ViewBag.searchField = searchField;
int pageSize = 15;
int pageNumber = (page ?? 1);
if (!String.IsNullOrEmpty(searchString))
{
switch (searchField)
{
case "firstname":
data = data.where(x => x.firstname == searchString);
break;
case "lastname":
data = data.where(x => x.lastname == lastname);
break;
default:
data = data.where(x => x.firstname == searchString);
break;
}
}
if (Request.IsAjaxRequest())
{
switch ()
{
code for ajax search call
}
}
return View(code for view);
}
我试图用会话变量存储搜索数据。像
Session["searchString"] = searchString;
Session["searchField"] = searchField;
并给出要搜索的会话变量。在我的项目中,所有操作都将在完成操作功能后重定向到索引操作。在该场景中,应获取所有数据,但将搜索会话变量,并显示搜索的数据。我想在单击“上一步”按钮时显示搜索到的数据,并在重定向时显示所有数据。提前感谢单击“上一步”按钮后,您可以将[OutputCache(NoStore=true,Duration=0)]放在希望在服务器上点击的操作上。在不缓存页面的情况下,浏览器将尝试点击服务器以获取内容,而不是在浏览器缓存中加载以前的内容,这不会点击控制器操作 什么后退按钮?浏览器后退按钮?是的,浏览器后退按钮当您单击后退按钮时,它将转到索引操作?是的,当然。它将转到索引操作,其中searchString和searchField值为null解释发生了什么?单击“上一步”按钮时,搜索数据不会保留,因为这行,
ViewBag.searchString=searchString代码>ViewBag.searchField=searchField代码>。您是否希望searcField和searchString参数具有值?当然不是,如果会话数据存在,则应根据设置的会话数据设置viewbag。