Les deux réponses sont complexes et trompeuse, une clé de compréhension de jQuery UI-Automatique est le succès fonction anonyme, vous avez l'effet de levier/contrôle du format de votre côté serveur réponse JSON en raison du succès de rappel de la saisie semi-automatique. L'étiquette,format de valeur est bonne à suivre, mais vous pouvez définir n'importe quel format JSON, vous avez le désir, la clé est de savoir comment vous définissez votre réussite fonction:
<input id="refPaymentTerms" class="form-control">
$("#refPaymentTerms").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url: "/admin/JobPaymentRefs",
dataType: "json",
data: {
term: request.termCode
},
error: function (xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.responseText);
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.label,
value: item.value
}
}));
}
});
}
});
MVC Contrôleur:
public JsonResult JobPaymentRefs()
{
var query = from REFTerm in _db.REFTerms
select new
{
label = REFTerm.TermCode,
value = REFTerm.TermCode
};
//var refTerms = _db.REFTerms.Select(x => x.TermCode);
return Json(query.ToArray());
}
Ici, nous voyons une très standard automatique lier avec un ASP.NET backend.
Vous pouvez retourner tout format JSON que vous désirez côté serveur aussi longtemps que vous le mapper correctement dans la saisie semi-automatique anonyme de rappel. L'étiquette,le nom de la valeur de la valeur de la paire qui est assez bon pour la plupart des besoins, mais le faire comme vous allez côté serveur avec votre JSON juste la carte correctement dans la saisie semi-automatique succès de rappel.