【发布时间】:2017-12-14 03:55:23
【问题描述】:
您好,我正在尝试使用 ajax 调用通过复选框控件填充 Listbox 中的值。
但无法填充列表框中的数据。
在视图中:
@Html.ListBoxFor(m => m.City, new SelectList(new[] { "" }), new { id = "cmbCity", @style = "width: 100px;" })
$(document).ready(function () {
$('#cmbCity').multiselect({
includeSelectAllOption: true,
enableFiltering: true
});
$('#btnShowCity').on('click', function () {
$.ajax({
url: '../CN/Get_City',
cache: false,
type: 'post',
success: function (data) {
data = JSON.parse(data);
$("#cmbCity").html("");
$.each($.parseJSON(data.result_City), function (i, city) {
$("#cmbCity").append
($('<option> </option>').val(city.ID).html(city.Name))
})
$('#cmbCity').multiselect('refresh');
}
})
});
在控制器中:
[HttpPost]
public string Get_City()
{
clsDAL objclDAL = new clsDAL();
DataTable _resultDataset =FillDataTable("SELECT [ID], Name FROM City");
return JsonConvert.SerializeObject(new { result_City = _resultDataset });
}
请给我一些建议
【问题讨论】:
-
您似乎正在为列表框使用 jQuery 插件,因此您需要调用它的方法来刷新数据(只需先注释掉您的
$('#cmbCity').multiselect({ ... })代码以确保选项正在加载(您的控制器代码毫无意义——我们甚至不知道result_City是什么或它包含什么属性) -
嗨斯蒂芬,我已经编辑了控制器的代码
-
仍然没有意义 - 它甚至无法编译!
var jsonData ...代码行是做什么用的 - 你从不使用jsonData。return ...代码行引用了result_City甚至不存在 -
对不起斯蒂芬,这是我这边的错误。但我的问题在于视图。我不明白如何填写选项
-
你到底为什么要序列化两次?
标签: asp.net-mvc