У меня есть два текстовых поля автозаполнения jQuery на веб-странице mvc. Один, который возвращает список вопросов, и другой, который возвращает список тегов.
Текстовое поле вопросов работает отлично, но текстовое поле тегов отправляет только пустую строку своему контроллеру.
JQuery Javascript является точным соответствием, кроме Url. Действие, нерабочий отображается ниже:
<script type="text/javascript">
$(document).ready(function() {
$('#searchTag').autocomplete('<%= Url.Action("AutoComplete", "Tags") %>', {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].Name, result: data[i].Name };
}
return rows;
},
formatItem: function(row) {
return row.Name;
},
delay: 40,
autofill: true,
selectFirst: false,
highlight: false,
multiple: true,
multipleSeparator: ";"
});
});
</script>
Контроллер тегов вызывается и возвращает данные Json правильно, поскольку я жестко закодировал строковый параметр 'b' в метод LookUpTag, чтобы убедиться, но строковый параметр t для автозаполнения всегда равен нулю.
public ActionResult AutoComplete(string t)
{
IQueryable<Tag> searchResults = tagRepository.LookUpTag("b");
var data = (from searchResult in searchResults
select new { Id = searchResult.ID, Name = searchResult.Name }).ToList();
return Json(data);
}
Есть ли логическая причина для этого?