mevren
mevren

Reputation: 85

MVC How to keep search value when navigating between pages?

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

Upvotes: 5

Views: 5819

Answers (2)

Yogi
Yogi

Reputation: 9749

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

Upvotes: 1

Related Questions