以下是下拉列表的代码。
@Html.DropDownList("EquipmentPortList", new SelectList(ViewBag.EquipmentPortList, "hvid", "hvnamn"), "--Select Equipment--")
@Html.DropDownList("PortConnectedList", Enumerable.Empty<SelectListItem>(), "--Select Port--")
以下是第一个下拉列表的更改事件代码: -
$(document).on('change', '#EquipmentPortList', function () {
var url = '@Url.Action("GetPortInt", "bearers")';
var ports = $('#PortConnectedList');
var id = $(this).val();
$.getJSON(url, { portid: id }, function (response) {
ports.empty();
$.each(response, function (index, item) {
ports.append($('</option>').text(item.portnamn).val(item.portid));
});
});
});
以下是控制器中的方法: -
public ActionResult GetPortInt(int portid)
{
var PortConnectedList = from h in nadb.hvportar
where h.porthvid == portid && (h.portnamn.Contains("NT") || (h.portnamn.Contains("Port")) || (h.portnamn.Contains("/")))
orderby h.portid
select new { h.portid, h.portnamn };
return Json(PortConnectedList, JsonRequestBehavior.AllowGet);
}
好的,所以第一个下拉列表正确填充,当我选择一个值时,我可以看到(使用警报)更改事件触发并正确选择值。
我可以通过使用断点来看到该方法被触发并从数据库返回正确的数据,但之后我不知道什么是错误的,因为下拉列表没有填充。
我从另一个帖子中获取了代码更改事件代码并对其进行了修改以适合我自己的项目,但我无法看到我所缺少的内容。谢谢。
答案 0 :(得分:0)
ports.append($('</option>').text(item.portnamn).val(item.portid));
应该阅读
ports.append($('<option></option>').text(item.portnamn).val(item.portid));
一旦我改变了它就有效了。非常感谢。