Получение SelectList для представления MVC с использованием AJAX / jQuery - PullRequest
6 голосов
/ 12 марта 2010

У меня есть приложение C # MVC, которое заполняет раскрывающийся список на основе выбранной даты.Как только дата выбрана, я отправляю ее на действие через AJAX / jQuery.Действие получает список элементов, которые нужно вернуть на эту дату.

Вот где моя проблема.Я сделал это ранее, где я визуализирую частичное представление из действия и передаю его SelectList в качестве модели.Однако я действительно хочу сделать это встроенным в исходном виде, поэтому я надеюсь, что есть какой-то способ, которым я могу вернуть SelectList и оттуда сделать некоторый волшебный Javascript / JQuery, чтобы поместить его в выпадающий список.

Кто-нибудь когда-либо делал это раньше?Если так, что мне делать на стороне клиента после вызова load () для возврата SelectList?

Я делал что-то подобное ранее, когда я просто возвращал строку или другое значение, которое будет отображаться какпрямой текст:

$("#returnTripRow").load("/Trip.aspx/GetTripsForGivenDate?date=" + escape(selection));

Но я не уверен, как перехватить данные и преобразовать их в вызов Html.DropDown (), или эквивалентный.

Есть идеи?

Спасибо,

Крис

1 Ответ

17 голосов
/ 12 марта 2010

Предположим, у вас есть действие контроллера, которое подаст данные для выпадающего списка:

public ActionResult Cars()
{
    return Json(new[] {
        new { id = "bmw", name = "BMW" },
        new { id = "mer", name = "Mercedes" },
        new { id = "aud", name = "Audi" }
    }, JsonRequestBehavior.AllowGet);
}

А по вашему мнению:

$.getJSON('/home/cars', { }, function(cars) {
    var list = $('select#cars');
    list.find('option').remove();
    $(cars).each(function(index, car) {
        list.append('<option value="' + car.id + '">' + car.name + '</option>');
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...