i ont défini une voie comme ci-dessous:ASP.NET MVC URL problème de routage
context.MapRoute("SearchEngineWebSearch", "search/web/{query}/{index}/{size}",
new
{
controller = "search",
action = "web",
query = "",
index = 0,
size = 5
});
et méthode d'action pour gérer match de demande avec ce qui suit:
public System.Web.Mvc.ActionResult Web(string query = "", int index = 0, int size = 5)
{
if (string.IsNullOrEmpty(query))
return RedirectToRoute("SearchEngineBasicSearch");
var search = new Search();
var results = search.PerformSearch(query, index, size);
ViewData["Query"] = query;
if (results != null && results.Count() > 0)
{
ViewData["Results"]= results;
return View("Web");
}
else return View("Not-Found");
}
et forment au paramètre envoyé à la méthode d'action :
<% using (Html.BeginForm("Web", "Search", FormMethod.Post))
{ %>
<input name="query" type="text" value="<%: ViewData["Query"]%>" class="search-field" />
<input type="submit" value="Search" class="search-button" />
<input type="hidden" name="index" value="2" />
<input type="hidden" name="size" value="2" />
<%} %>
maintenant, après cliquez sur soumettre et envoyer la valeur à la méthode d'action toutes les valeurs de route mises à jour, mais les valeurs url est toujours égal à égal à la première fois d'envoyer le paramètre. par exemple si j'ai envoyé pour la première demande comme http://localhost/search/web/google et pour la prochaine fois http://localhost/search/web/yahoo, le paramètre de requête qui est passé à la méthode d'action est yahoo mais l'URL après la publication est http://localhost/search/web/google encore!
quelqu'un peut-il m'aider plz? ;)
désolé, car cela cause une redirection illimitée! et aussi si je change form-method de post à get, alors il génère l'url quels paramètres passés en querystring et je ne le ferai pas;) – Sadegh