2016-07-25 15 views
0

Ich habe den folgenden Code in Controller:jQuery Autocomplete ASP.Net nicht funktioniert

public JsonResult FindProduct(string searchString) 
{ 
     var productsName = from c in db.Products 
          where c.ProductName.Contains(searchString) 
         select new { value = c.Barcode, label = c.ProductName }; 

     return this.Json(productsName, JsonRequestBehavior.AllowGet); 
} 

Und der folgende Code in meiner Ansicht:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#productName").autocomplete({ 
      source: '<%= Url.Action("FindProduct") %>', 
      select: function (event, ui) { 
       var prodBarcode = ui.item.value; 
       $("#productName").val(ui.item.label); 
       $("#productBarcode").val(ui.item.value); 
       return false; 
      } 
     }); 
    }); 
</script> 

<div class="ui-widget"><input type="text" name="productName" id="productName" /></div> 

Aus irgendeinem Grund die finde (string searchString-) ist nie angerufen. Und die automatische Vervollständigung funktioniert nicht. Benötige ich etwas anderes in meinem Skript?

Antwort

-1

Das scheint für mich schrecklich falsch.

source: '<%= Url.Action("FindProduct") %>', 

Ich weiß nicht, ob es funktionieren kann, aber wenn ich hatte, warum der Server Methode, die ich nie endgültig von dort aus starten werden genannt zu überprüfen.

Setzen Sie Ihre gesamte URL in das Quellattribut und mischen Sie nicht den Server- und den Clientcode.

+0

Ich nehme an, Sie haben dieses Konstrukt nicht schon einmal gesehen? Dies ist die allgemein akzeptierte Methode in asp.net MVC zum Generieren von Action URLs. Es ist getan, denn wenn sich der Standort oder das Routing der Aktion ändert, muss der JS-Code nicht aktualisiert werden. Und manchmal muss das genaue Routing von der Serverseite basierend auf den angegebenen Regeln berechnet werden, es kann nicht einfach sein, es auszuarbeiten und hart zu codieren. Die meisten Leute stimmen zu, dass dies besser ist, als die URL für MVC-Apps hart zu codieren. – ADyson

Verwandte Themen