MVC How to keep search value when navigating betwe

2019-06-22 15:12发布

I have a search box that searches by using EMPLID. Search works but if I go to any other page after doing search (Ex: If I switch to details page) and then navigate back to the page I did search on, It displays all the records. How can I keep the search criteria so that when I navigate between pages it shows information of that EMPLID?

My controller:

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

My Layout:

@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>
}

2条回答
仙女界的扛把子
2楼-- · 2019-06-22 15:24

You can use TempData for preserving the search string.

Add your SearchString in temp data like this-

TempData["SearchString"] = SearchString;

...and get back the value when required-

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

Please refer this msdn article for more information on passing Data in an ASP.NET MVC Application

查看更多
登录 后发表回答