Ich versuche derzeit, Jquery-UI Autocomplete-Funktionalität ähnlich wie hier gezeigt zu verwenden: Autocomplete dropdown in MVC5? ... Ich habe viele Beiträge jetzt mit jquery Autocomplete-Helfer überprüft und konnte mein Problem nicht finden. Mein Problem ist, dass der Ajax-Aufruf erlischt und die GetSchools-Aktion erfolgreich schlägt, die Aktion wird die richtigen und erwarteten Daten zurückgeben, aber dann passiert nichts. Es werden keine Optionen zur automatischen Vervollständigung angezeigt, und es werden keine Konsolenfehler angezeigt. Die success
Funktion in meiner js wird mit der entsprechenden Anzahl von Elementen in data
getroffen, aber nichts passiert danach. Alle Hilfe wird geschätzt.MVC Autocomplete Dropdown Probleme
Mein Controller-Aktionen:
public ActionResult ManualVerifications()
{
var vm = new ManualVerificationsViewModel();
return View(vm);
}
[HttpPost]
public ActionResult ManualVerifications(ManualVerificationsViewModel vm)
{
return View();
}
public JsonResult GetSchools(string term = "")
{
var schoolList = _schoolRepo.GetAll()
.Where(c => c.Name.ToLower().Contains(term.ToLower()))
.Select(x => new { label = x.Name, value = x.Id })
.Distinct().ToList();
return Json(schoolList, JsonRequestBehavior.AllowGet);
}
My View (ManualVerifications.cshtml):
@model ProEdVerificationPortal.Data.ViewModels.Verification.ManualVerificationsViewModel
@Html.LabelFor(model => model.SelectedSchoolName, new { @class = "control-label" })
@Html.TextBoxFor(model => model.SelectedSchoolName, new { @class = "form-control" })
@Html.HiddenFor(model => model.SchoolId)
und der in der Ansicht gerendert JS:
$(document).ready(function() {
$("#SelectedSchoolName").autocomplete({
source: function (request, response) {
$.ajax({
url: '/verification/getschools',
type: "GET",
datatype: "json",
data: {
term: request.term
},
success: function (data) {
console.log(data);
response(data);
}
})
},
select: function (event, ui) {
$("#SelectedSchoolName").val(ui.item.label);
$("#SchoolId").val(ui.item.value);
return false;
},
focus: function (event, ui) {
$("#SelectedSchoolName").val(ui.item.label);
return false;
}
});
});
und mein sehr einfaches Viewmodel :
[ { label: "SeedSchool", value: 1 }
und ein Bild von der console.log (Daten) Ergebnisse:
ein Beispiel für Daten Rückkehr aus meinem Controller folgendes wäre
Eine Antwort wurde gesendet, aber ohne ein Beispiel Ihrer Daten zu sehen, die an Ihren AJAX zurückgegeben werden, ist es schwer zu wissen, was passiert. Überprüfen Sie auch auf Fehler in der Konsole. Bitte aktualisieren Sie Ihre Frage. – Twisty
@ Twisty Frage wurde aktualisiert - das gleiche Verhalten immer noch auftritt – GregH
Auch meine Antwort aktualisiert. – Twisty