Я пытаюсь создать автозаполнение, но у меня есть проблемы с исправлениями по частям.Автозаполнение: отображение результатов с данными json
Во-первых, на мой взгляд, включают это поле:
<p>@Html.TextBoxFor(_item => _item.mCardName, Model.mCardName, new { @class = "cardText", id = "card_name"}) </p>
Очень простой. Далее, Javascript вызов:
<script type="text/javascript">
$(function() {
$('#card_name').autocomplete({
minlength: 5,
source: "@Url.Action("ListNames", "Card")",
select: function (event, ui) {
$('#card_name').text(ui.item.value);
},
});
});
</script>
Что вызывает этот метод:
public ActionResult ListNames(string _term)
{
using (BlueBerry_MTGEntities db = new BlueBerry_MTGEntities())
{
db.Database.Connection.Open();
var results = (from c in db.CARD
where c.CARD_NAME.ToLower().StartsWith(_term.ToLower())
select new {c.CARD_NAME}).Distinct().ToList();
JsonResult result = Json(results.ToList(), JsonRequestBehavior.AllowGet);
return Json(result, JsonRequestBehavior.AllowGet);
}
}
Если я вставить слово "Power", данные в формате JSON размещен обратно, как это:
{"ContentEncoding":null,"ContentType":null,"Data":[{"CARD_NAME":"Power Armor"},{"CARD_NAME":"Power Armor (Foil)"},{"CARD_NAME":"Power Artifact"},{"CARD_NAME":"Power Conduit"},{"CARD_NAME":"Power Conduit (Foil)"},{"CARD_NAME":"Power Leak"},{"CARD_NAME":"Power Matrix"},{"CARD_NAME":"Power Matrix (Foil)"},{"CARD_NAME":"Power of Fire"},{"CARD_NAME":"Power of Fire (Foil)"},{"CARD_NAME":"Power Sink"},{"CARD_NAME":"Power Sink (Foil)"},{"CARD_NAME":"Power Surge"},{"CARD_NAME":"Power Taint"},{"CARD_NAME":"Powerleech"},{"CARD_NAME":"Powerstone Minefield"},{"CARD_NAME":"Powerstone Minefield (Foil)"}],"JsonRequestBehavior":0,"MaxJsonLength":null,"RecursionLimit":null}
Для справочной цели здесь приведены два сценария, которые запускаются:
<script src="/Scripts/jquery-2.0.3.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
Однако ничего не отображается. Мне бы хотелось, чтобы результаты отображались как обычный автозаполнение. Может ли кто-нибудь помочь мне заставить все работать?
EDIT
Я работаю над этим некоторое время. Я опубликовал там новый javascript, метод контроллера и полученные результаты. Но все еще не работает, и я был бы признателен за любую помощь.
Err, на каком языке это? – hsim
это vb.net, можно легко портировать на C#. –