У меня вот такой код на клиенте:
<input style="margin-left:50px;" type="text" id="searcher" data-autocomplete-source='@Url.Action("Search", "Home")' />
<script type="text/javascript">
$(function () {
alert("работает");
$("[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({ source: target.attr("data-autocomplete-source") });
});
});
</script>
----------------------------------------------------------------------
'@Url.Action("Search", "Home")' - это адресс функции, которая генерирует данные на сервере. Вот код этой функции:
public ActionResult Search(string term)
{
//формирую список обьектов моего класса
List<SearchItem> result = new List<SearchItem>();
//основная выборка данных из базы данных с условием, которое получаем от клиента(string term)
var recordresults = _datamanager.Record.GetAllRecords().Where(x => x.Title.Contains(term) || x.Text.Contains(term))
.Take(5)
.ToList()
.Select(x => new RecordSearch(x));
if (recordresults.Any())
{
//добавление результатов в основной список, который будем отправлять клиенту
result.AddRange(recordresults);
}
//возвращаем данные клиенту
return Json(result, JsonRequestBehavior.AllowGet);
}
-----------------------------------------------------------------------
вот класс из экземпляров которого генерируется массив и отправляется клиенту:
public class RecordSearch: SearchItem
{
//Сущность Record(у нее есть поля Title,Id...)
Record Model;
//конструктор класса
public RecordSearch(Record model)
{
this.Model = model;
}
//ну и свойства
public override int Id {
get { return this.Model.Id_Record; }
}
public override string Title {
get { return Model.Text; }
}
public override string CssClass {
get { return "recordsearch"; }
}
public override string TypeName {
get { return "Статья:"; }
}
}
--------------------------------------------------------------
Просто я не могу понять как на jQuery достать данные из свойства обьекта, в какой функции это надо делать? Этот код будет работать если передавать не массив обьектов а массив строк. То есть на сервере все в порядке. На сколько я понял изначально в моем файле, который я скачал на сайте jQuery-ui 1.11.4.js там все уже прописано, все функции уже есть, только по умолчанию они расчитаны на массив строк. Как то так...
|