使用AJAX/jQuery将SelectList传递到MVC视图

6
我有一个C# MVC应用程序,根据所选日期填充下拉列表。一旦选择了日期,我会通过AJAX/jQuery将其发送给操作。该操作获取要返回的该日期的项目列表。
这就是我的问题所在。我以前做过这样的事情,从操作中呈现一个部分视图并将其作为模型传递SelectList。然而,我真的只想在原始视图中内联执行它,所以我希望有一种方法可以返回SelectList,然后进行一些神奇的Javascript/JQuery操作,将其放入下拉列表中。
有人以前做过这样的事吗?如果有,那么在调用load()后我在客户端上该怎么做才能返回SelectList?
我以前做过类似的事情,当我只返回字符串或其他值以直接呈现文本时:
$("#returnTripRow").load("/Trip.aspx/GetTripsForGivenDate?date=" + escape(selection));

但是我不确定如何拦截数据并将其转换为Html.DropDown()调用或等效调用。

有什么想法吗?

谢谢,

克里斯

1个回答

19

假设你有一个控制器操作将为下拉列表提供数据:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接