How to implement a search page which shows results on the same page?

Posted by Andrew on Stack Overflow See other posts from Stack Overflow or by Andrew
Published on 2010-03-17T23:25:15Z Indexed on 2010/03/17 23:31 UTC
Read the original article Hit count: 173

Filed under:

I'm using ASP.NET MVC 2 for the first time on a project at work and am feeling like a bit of a noob.

I have a page with a customer search control/partial view. The control is a textbox and a button. You enter a customer id into the textbox and hit search. The page then "refreshes" and shows the customer details on the same page. In other words, the customer details appear below the customer search control.

This is so that if the customer isn't the right one, the user can search again without hitting back in the browser. Or, perhaps they mistyped the customer id and need to try again.

I want the URL to look like this:

/Customer/Search/1

Obviously, this follows the default route in the project.

Now, if I type the URL above directly into my browser, it works fine. However, when I then use the search control on that page to search for say customer 2, the page refreshes with the correct customer details but the URL does not change! It stays as

/Customer/Search/1

When I want it to be

/Customer/Search/2

How can I get it to change to the correct URL?

I am only using the default route in Global.asax.

My Search method looks like this:

<AcceptVerbs(HttpVerbs.Get)> _
Function Search(ByVal id As String) As ActionResult
    Dim customer As Customer = New CustomerRepository().GetById(id)

    Return View("SearchResult", customer)
End Function

© Stack Overflow or respective owner

Related posts about asp.net-mvc