【发布时间】:2020-10-08 22:52:58
【问题描述】:
我正在尝试在 ASP.NET MVC 中使用 jquery 动态填充下拉列表中的项目。
这是我的视图代码:
<select id="StartLocation" class="custom-select", onchange = "highlightMarkerById(this.value,0)">
<option value="">-Start Location-</option>
</select>
这是我调用来获取数据的函数:
function GetLocations() {
$.ajax({
type: "POST",
url: "/MV/GetLocations",
dataType: "json",
success: function (data) {
for (var j = 0; j < data.length ; j++) {
$('#StartLocation').append($('<option>', {
value: data[j].Value,
text: data[j].Text
}));
}
},
error: function () {
return "error";
}
});
}
在 MV 控制器中,我有 GetLocations 操作方法如下:
[HttpPost]
public JsonResult GetLocations()
{
List<vlocation> locationslist = DBManager.Instance.GetLocations();
List<SelectListItem> locations = new List<SelectListItem>();
foreach(var loc in locationslist)
{
locations.Add(new SelectListItem { Value = loc.displayName, Text = loc.displayName });
}
return Json(locations);
}
我在chrome中调试,发现success已经到达,for循环也在迭代中。
但我无法弄清楚为什么这些项目没有被添加到下拉列表中。如果我使用相同的代码将一些项目添加到success 之外的下拉列表中,则会添加这些项目。任何帮助将不胜感激。
【问题讨论】:
-
你不见了;添加选项后。更新它}));
-
响应格式是什么?地图、json 还是什么?
-
您正在检索数据...为什么
POST?...可能缺少;@ScanQR 提到这是您的问题。 -
@PeterB :这是一个错字。已更正。
-
@ScanQR :已更正。还是同样的问题。响应仅是 Json
标签: jquery asp.net asp.net-mvc