현재 여기에 표시된 것과 비슷한 Jquery-UI의 자동 완성 기능을 사용하려고합니다 : Autocomplete dropdown in MVC5? ... jquery 자동 완성 헬퍼를 사용하여 많은 게시물을 검토하고 내 문제를 찾을 수 없습니다. 내 문제는 아약스 호출이 나가고 GetSchools 작업에 성공적으로 도달하면 작업에서 정확하고 예상 된 데이터를 반환하지만 아무 일도 일어나지 않는다는 것입니다. 자동 완성 옵션이 표시되지 않으며 콘솔 오류가 나타나지 않습니다. 내 js에있는 success
함수는 data
에있는 항목 중 적절한 수와 충돌하지만 그 이후에는 아무 일도 발생하지 않습니다. 모든 도움을 주시면 감사하겠습니다.MVC 자동 완성 드롭 다운 문제
내 컨트롤러 조치 :
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);
}
내보기 (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)
하고 뷰에서 렌더링 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;
}
});
});
내 아주 간단한 뷰 모델 :
[ { label: "SeedSchool", value: 1 }
과 CONSOLE.LOG에서 사진 (데이터) 결과 :
내 컨트롤러에서 데이터 반환의 예는 다음과 같은 것이 나는 3 일을 볼
답변을 게시했지만 AJAX에 반환 된 데이터의 예를 보지 않고는 무슨 일이 일어나고 있는지 알기 어렵습니다. 또한 콘솔에서 오류가 있는지 확인하십시오. 질문을 업데이트하십시오. – Twisty
@ 트위스티드 질문이 업데이트되었습니다. 동일한 문제가 여전히 발생합니다. – GregH
또한 내 대답이 업데이트되었습니다. – Twisty