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。