J'ai le code suivant dans le contrôleur:jQuery autocomplete ASP.Net ne fonctionne pas
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);
}
Et le code suivant à mon avis:
<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>
Pour une raison quelconque la FindProduct (chaîne searchString) est jamais appelé. Et la saisie semi-automatique ne fonctionne pas. Ai-je besoin d'autre chose dans mon script?
Je suppose que vous n'avez jamais vu cette construction auparavant? C'est la méthode généralement acceptée dans asp.net MVC pour générer des URL d'action. C'est fait parce que si l'emplacement de l'action ou le routage change, le code JS n'a pas besoin d'être mis à jour. Et parfois, le routage exact doit être calculé par le serveur en fonction des règles spécifiées, il peut ne pas être facile à établir et à coder en dur. La plupart des gens conviennent que faire cela est mieux que de coder en dur l'URL pour les applications MVC. – ADyson