Как фильтровать занятие при вводе в MVC3

#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);
            }
        });
  

Это из блокнота, поэтому могут быть некоторые незначительные синтаксические ошибки.