2011-04-17 3 views
1

J'ai ce scénario:ASP.NET MVC - Mettre en œuvre une action de recherche jquery

Site.master


    ...    
    <%= Html.TextBox("ricerca") %> 
    <img src="" alt ="" id="search" /> 
    ... 

    <script type="text/javascript"> 
     $(function() { 
      $('#search').click(function() { 
       var valueSearch = $('#ricerca').val(); 
       Search(valueSearch); 
      }); 
     }); 
     function Search(valueSearch) { 
      $.ajax({ 
       type: "POST", 
       url: "/Home/Search", 
       data: "value=" + valueSearch 
      }); 
     } 

HomeController


    [HttpPost] 
    public ActionResult Search(string value) 
    { 
     //...logic search 
     return View(); 
    } 

Lorsque je clique sur l'image appelée correctement l'action de recherche , mais après "Return View()" ne pas charger l'affichage Recherche (positionné dans le dossier Accueil)

Pourquoi ne pas afficher?

Répondre

1

À aucun moment, vous n'insérez les données renvoyées par le serveur dans le document. Cela doit se faire dans success callback de $.ajax:

$.ajax({ 
    type: "POST", 
    url: "/Home/Search", 
    data: "value=" + valueSearch, 
    success: function(data) { 
     alert(data); 
     $("#someDiv").html(data); 
    } 
}); 
+0

Ok, mais je veux charger toute la vue de la recherche. Non seulement le résultat html .. –

+0

Vous voulez dire que vous voulez remplacer la page chargée actuelle par la page de recherche via ajax? – karim79

+0

exactement! J'ai essayé avec Html.ActionLink, mais je ne peux pas passer la valeur de la zone de texte. –

Questions connexes