Je suis en train de faire la chose jQuery Automcomplete au travail, mais il ne fera pas comme je veux: P Ceci est mon code:jQuery UI Autocomplete avec ASP MVC
JavaScript:
$("#CustomerID").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/customer/search",
dataType: "json",
data: {
term: request.term
},
error: function(xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.responseText);
},
success: function(data) {
response($.map(data, function(c) {
return {
label: c.Company,
value: c.ID
}
}));
}
});
},
minLength: 2,
select: function(event, ui) {
alert('Select');
}
});
ASP MVC:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Search(string term)
{
if (term == null)
term = "";
List<JSON_Customer> customers = repCustomer.FindCustomers(term).ToList();
return Json(customers);
}
public class JSON_Customer
{
public int ID { get; set; }
public string Company { get; set; }
}
public IQueryable<JSON_Customer> FindCustomers(string searchText)
{
return from c in _db.Customers
where c.Company.Contains(searchText)
orderby c.Company
select new JSON_Customer
{
ID = c.ID,
Company = c.Company
};
}
je reçois la demande de $.ajax
et je retourne la liste correcte des clients selon le terme de recherche. Et la méthode success
est appelée. Je peux voir que data
a une valeur de [object Object]
mais que dois-je faire ensuite? Aucun client ne tombe dans ma liste. J'utilise le code response($.map...
du http://jqueryui.com/demos/autocomplete/#remote-jsonp mais cela ne marchera pas.
Quelqu'un sait pourquoi?
Pouvez-vous utiliser un outil de débogage de diagnostic/tel que Firebug (plugin) pour FF, Outils de développement (F12 pour IE ou Ctrl + Maj + J pour Chrome) pour voir exactement ce qui est retourné au navigateur, et comment il est traité? –