如何在页面之间导航时保持搜索值

本文关键字:搜索 导航 之间 | 更新日期: 2023-09-27 18:12:57

我有一个搜索框,通过使用EMPLID搜索。搜索工作,但如果我去做搜索后的任何其他页面(例如:如果我切换到详细信息页面),然后导航回我做搜索的页面,它显示所有的记录。如何保留搜索条件,以便在页面之间导航时显示该EMPLID的信息?

我的控制器:

public ActionResult Index(string SearchString)
{
    var emp = from e in db.EMPLOYMENTs
              select e;
    if (!String.IsNullOrEmpty(SearchString))
    {
        emp = emp.Where(s => s.EMPLID.Contains(SearchString));
    }
    return View(emp);
}

我的布局:

@using (Html.BeginForm())
{
    <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
            <input class="form-control" placeholder="Search" type="text" name="SearchString">
        </div>
    </form>
}

如何在页面之间导航时保持搜索值

您可以使用TempData来保留搜索字符串

像这样在临时数据中添加搜索字符串-

TempData["SearchString"] = SearchString;

…并在需要时返回值-

string searchString = TempData["SearchString"] as string;

有关在ASP中传递数据的更多信息,请参阅msdn文章。. NET MVC应用

您有两个选择:使用TempData或使用Session State。

遵循示例:

http://www.dotnetcurry.com/aspnet-mvc/1074/aspnet-mvc-pass-values-temp-data-session-request

http://www.codeproject.com/Articles/818493/MVC-Tempdata-Peek-and-Keep-confusion

TempData keep() vs peek()

如何在MVC中保留删除后的搜索值