문제

jQuery의 자동 완성을 사용하고 페이지의 배열 값을 하드 코드하면 훌륭하게 작동합니다. 그러나 내가해야 할 일은 웹 서비스 나 컨트롤러 내부의 공개 기능에서 배열 값을 얻는 것입니다. 나는 다양한 방법을 시도했지만 작동하게 할 수없는 것 같습니다. 내가 얻은 가장 먼 것은 데이터를 긴 문자열로 끌어 올리는 것입니다. 자동 완료 결과가 제공되면 긴 줄이 일치하는 긴 문자열입니다.

    $("#TaskEmailNotificationList").autocomplete("http://localhost/BetterTaskList/Accounts/registeredUsersEmailList", {
    multiple: true,
    mustMatch: false,
    multipleSeparator: ";",
    autoFill: true
  });

누구든지 이것을 만난 사람이 있습니까? C#을 사용하고 있습니다.

업데이트:아래 코드는 한 걸음 앞으로 나아가고 있습니다. 이제 배열이 반환되고 있지만 내 페이지에서 잘못 처리하고 있다고 생각합니다.

  var emailList = "http://localhost/BetterTaskList/Account/RegisteredUsersEmailList";

  $("#TaskEmailNotificationList").autocomplete(emailList, {
    multiple: true,
    mustMatch: false,
    multipleSeparator: ";",
    autoFill: true
  });

 [HttpGet]
    public  ActionResult RegisteredUsersEmailList()
    {
       BetterTaskListDataContext db = new BetterTaskListDataContext();
        var emailList = from u in db.Users select u.LoweredUserName;
        return Json(emailList.ToList(), JsonRequestBehavior.AllowGet);
    }
도움이 되었습니까?

해결책

먼저, 당신의 구문은 내가 익숙한 것과 다르게 보입니다. jQuery UI의 일부인 자동 완성 위젯을 사용하는 경우 자동 완성 구문은 다음과 같습니다.

$("#input1").autocomplete({
      source: "http://localhost/Whatever"
});

jQuery UI에 포함 된 자동 완성을 사용하지 않을까요?

당신이 ....
에 따르면 jQuery UI Autocomplete에 대한 문서, 소스는 세 가지 중 하나 일 수 있습니다. 배열, 문자열 (URL) 또는 함수. 배열 인 경우 객체 또는 단어 일 수 있습니다. 객체가 있으면 각각은 a를 노출시켜야합니다 label,, a value 재산 또는 둘 다.

URL 인 경우 배열 형식 중 하나를 준수하는 JSON을 반환해야합니다. 예를 들어, 돌아와야합니다

[ "albatross", "bison", "cayman", "duck", ...] 

또는

[ { "label": "albatross", "value": "72" }, 
  { "label": "bison", "value": "24" }, 
   ...
]

아마도 위의 형식 중 하나를 준수하지 않는 것을 검색하고있을 것입니다.

또한보십시오, 이 답변

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top