Click here to Skip to main content
15,884,537 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Good time! There was a problem displaying the route in the input URL browser. To the search page on the site. The search itself is working fine - the "key" is passed, the list of found displayed. Search method in the controller takes an argument of type string for which to search:


C#
public ActionResult SearchAllByKey(string key)

            {

                //logic

                return View(<list_of_found>);

            } 



In Global.asax prescribed route:


C#
routes.MapRoute(

                      "Search",

                      "Search/{key}",

                      new { controller = "controller_name", action = "SearchAllByKey", key = UrlParameter.Optional }

                  );



Form which sends the value of Edit to method from View:


C#
<% using (Html.BeginForm("SearchAllByKey", "controller_name", FormMethod.Post, new { enctype = "multipart/form-data" }))

                               {%>

                            <%: Html.ValidationSummary(true) %>

                            <input type="text" id="keyValue" name="key" />

                            <input type="submit" value="Go!" />

                            <% } %>



When you click on "Go!". to a page of search results, but the URL (input line browser) shows:


http://localhost:PORT/Search


instead of:


http://localhost:PORT/Search/SOME_KEY


How to make sure that was visible "key" in the URL-e? Thanks in advance
Posted

If the FormMethod.Post and before the method put [HttpGet], the URL looks:

localhost:PORT/Search?key=nature

but should be:

localhost:PORT/Search/nature
 
Share this answer
 
XML
Solution:

In View:
<pre lang="c#"><% using (Html.BeginForm("Search", "Home", FormMethod.Post))
{%>
    <% Html.ValidationSummary(true); %>
    <input type="text" id="key" name="key" value="" />
    <input type="submit" value="Go!" />
<% } %>


Add method to controller:

C#
[HttpPost]
public ActionResult Search(FormCollection form)
{
    return RedirectToAction("SearchAllByKey",  new { key = form["key"] });
}


Thanks LeftyX.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900