【发布时间】:2020-01-05 14:40:15
【问题描述】:
我的 html 中有两个 select 元素,第一个 select 应填充数据库中的数据,第二个应填充数据,具体取决于第一个 select 的选定项。但是,我设法在第一个上获得了价值,而第二个select 出现问题,它返回未定义,具有准确的预期项目计数,但不显示项目名称,仅显示未定义列表。请帮助...这是代码:
1. html
<div class="row">
<div class="col-md-6">
<div class="form-group">
Category:
<select asp-for="CategoryID" id="CategoryDD" class="form-control" asp-items="@(new SelectList(ViewBag.ListOfCategories,"CategoryID","CategoryName"))">
<option value="">--Select Category--</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
Item Name:
<select asp-for="Id" id="ItemDD" class="form-control" asp-items="@(new SelectList("","Id","ItemName"))">
<option value="">--Select Item--</option>
</select>
</div>
</div>
2。 jQuery
$(document).ready(function () {
$("#CategoryDD").change(function () {
console.log("Feching Items");
$("#ItemDD").empty();
$.ajax({
type: "POST",
url: "@Url.Action("GetItems")",
dataType: "Json",
data: { id: $("#CategoryDD").val() },
success: function (items) {
console.log("Success!!!");
$.each(items, function (i, item) {
$("#ItemDD").append("<option value='"+item.Id+"'>"+ item.ItemName + "</option>");
});
},
error: function (ex) {
alert('Error Loading Items ' + ex);
}
});
return false;
})
});
3. MVC 控制器
public JsonResult GetItems(int id)
{
var objSelectListItem = (from obj in _context.OrderItem.Where(cat => cat.CategoryID == id)
select new SelectListItem()
{
Text = obj.ItemName,
Value = obj.Id.ToString(),
}).ToList();
return Json(objSelectListItem);
}
【问题讨论】:
标签: jquery ajax model-view-controller