Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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>
}
like image 504
mevren Avatar asked Nov 09 '22 05:11

mevren


1 Answers

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

like image 185
Yogi Avatar answered Nov 14 '22 22:11

Yogi