Не могу заставить работать автозаполнение виджета JQuery UI - PullRequest
1 голос
/ 10 марта 2010

Я пытаюсь разработать свое первое веб-приложение ASP.NET MVC и столкнулся с проблемой с виджетом автозаполнения jquery ui.

На данный момент у меня есть форма с несколькими текстовыми полями, которые хорошо поддаются автозаполнению.

Код для моего текстового поля "Марка" (Car make) показан ниже:

JQuery:

$(function() {
     $("#Make").autocomplete({
          source: '<%=Url.Action("Make","AutoComplete") %>' 
     });
});

Контроллер ASP.NET MVC:

public ActionResult Make(string term)
{
    return Json(Service.GetHints(HintType.Make, term, 20));
}

GetHints() возвращает IList of Hints, объект со свойствами только метки и строки значения. Документация подразумевает, что это то, что я должен возвращать в jquery, но он не хочет работать? Кто-нибудь может дать мне какой-нибудь совет / помощь?

1 Ответ

2 голосов
/ 11 марта 2010

У меня тоже была эта проблема. Вам нужно будет изменить свой ActionResult на JsonResult

В MVC 2 произошли изменения в JsonResult, и поэтому он больше не будет работать с HTTP GET, чтобы избежать перехвата JSON.

Таким образом, вы можете либо изменить свой код для возврата через HTTP POST, либо разрешить поведение GET, которое может оставить вас открытым для перехвата JSON .

Попробуйте изменить свой код в соответствии с форматом

return Json(data, JsonRequestBehavior.AllowGet);

твой код будет выглядеть как

public JsonResult Make(string term)
{
    return Json(Service.GetHints(HintType.Make, term, 20), JsonRequestBehavior.AllowGet);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...