#asp.net-mvc-3 #filter
#asp.net-mvc-3 #Фильтр
Вопрос:
У меня есть список из 2500 профессий, хранящихся в нашей базе данных. На нашем сайте мы просим вас ввести свой род занятий, и я бы хотел, чтобы он фильтровал результаты по мере их ввода; например Play.com это поиск. Есть ли способ сделать это в MVC3?
Ценю любую помощь.
Ответ №1:
Вы можете сделать это с помощью автозаполнения javascript.
Например: http://www.pnpguidance.net/post/jQueryAutoCompleteASPNETMVCFramework.aspx
Вы можете получить свои данные с помощью jQuery Ajax.
Ответ №2:
Я бы создал метод действия, который возвращал бы JSON:
[HttpGet()]
public JsonResult Occupations(String searchCriteria)
{
String[] occupations = new String[] { "Lawyer", "Carpenter" };
return Json(occupations.Where(s => s.Contains(searchCriteria))
.ToList(), JsonRequestBehavior.AllowGet);
}
Если вы запустите запрос GET по этой ссылке: /Occupations ?SearchCriteria=Carpenter в ответе вы получите [«Carpenter»] .
Я бы сделал вызов jQuery ajax для этого метода действия. В случае успеха я бы ответил и сгенерировал вывод, такой как список элементов li для выбора.
Пример запроса ajax json get приведен ниже:
$.ajax({
type: 'json',
url: '/Occupations',
type: 'GET',
cache: false,
data: { searchCriteria: searchCriteria},
error: function () {
},
success: function (result) {
alert(result);
}
});
Это из блокнота, поэтому могут быть некоторые незначительные синтаксические ошибки.