2010-09-09 8 views
0

un petit problème pour toi.clé = valeur asp.net mvc avec url obtenir?

à la page principale j'ai une entrée de recherche et lien:

<input type="text" value="Searche..." name="txtSearche" id="txtSearche" style="vertical-align: middle; height:14px;" /> 
<%= Html.ActionLink("search", "Search", "Search", new{ searche = "txtSearche???what is here"}, null) %> 

Comment puis-je écrire la valeur dans l'URL « valeur » du texte d'entrée, puis l'obtenir dans mon contrôleur de recherche?

[HttpGet] 
     public ActionResult Search(string txtSearche) 
     { 
      try 
      { 
       SearchModel model = new SearchModel(txtSearche); 
       if (txtSearche != null) 
       { 
        return View(model); 
       } 
       else 
       { 
        return View(); 
       } 
      } 

mon plus gros problème est ici-> nouveau {searche = "txtSearche ??? ce qui est ici"} je ne sais pas comment faire cette partie de travail

Répondre

2
public ActionResult Search(string txtSearche, string searche) { 

simple :) il suffit de mettre dans les paramètres.

ou vous pouvez également faire string searche = Request["searche"] mais dans MVC, utilisez la première option :)

Edit: ok j'obtenir ce que vous voulez. vous avez un formulaire de saisie et vous voulez l'utiliser.

2 mots: UTILISER POST.

vous essayez de faire une requête get dans l'URL ce qui est en fait une requête POST. faire un post, puis dans votre vue de retour, vous pouvez également faire apparaître la requête dans l'URL.

la meilleure chose est, faire le postback, qui retournera naviguer vers la nouvelle URL avec votre SearchQuery dans avec ce

return RedirectToAction("Search", new { searche = txtSearche }); 
+0

qu'est-ce que string searce ???? J'ai juste besoin d'un txtsearch ou non ??? –

+0

est nouveau {searche = "txtSearche"} dans mon html.actionlink correct? –

+0

regardez, votre question n'est pas claire du tout. Qu'est-ce que tu veux? :) voulez-vous une réponse dans votre contrôleur ou dans votre page comment obtenir quelque chose? – Stefanvds

0

si vous espériez à obtenir l'entrée de zone de texte alors vous devez le mettre dans un formulaire avec un bouton de soumission. Ensuite, vous allez capturer « txtSearche »:

<% using(Html.BeginForm()) { %> 
    <input type="text" value="Searche..." name="txtSearche" id="txtSearche" style="vertical-align: middle; height:14px;" /> 
    <input type="submit" value="search" /> 
<% } %> 

Vous devrez faire votre action accepter [HttpPost] bien. Sauf si vous faites votre formulaire utilisez la méthode GET

Questions connexes