我设法用这个解决方案的组合来解决这个问题
Ajax call to populate select list when another select list changes
这个解决方案
bind drop down list using jquery ajax on change of first ddl
.
我创建了一个新方法,它以JSON格式显示我的所有组
public IActionResult GetGroupByService()
{
var grouping = _context.ComponentGroups;
return Json(grouping);
}
然后在我的视图中,我使用JQuery从JSON数组返回的数据中填充一个空的select列表
<script language="javascript" type="text/javascript">
function GetGroup(_serviceId) {
$.ajax({
url: '@Url.Action("GetGroupByService", "Components")',
data: { serviceId: _serviceId },
cache: false,
type: "POST",
success: function (data) {
var markup = "";
for (var x = 0; x < data.length; x++) {
if (data[x].serviceId == _serviceId) {
markup += "<option value=" + data[x].groupId + ">" + data[x].groupName + "</option>";
}
}
$("#GroupId").html(markup).show();
},
error: function (reponse) {
alert("error : " + reponse);
}
});
}
</script>
这是我的精选名单
<label asp-for="ServiceId" class="control-label">Service Name</label>
<select asp-for="ServiceId" class="form-control" asp-items="ViewBag.ServiceName" onchange="javascript:GetGroup(this.value);">
<label asp-for="GroupId" class="control-label">Group Name</label>
<select asp-for="GroupId" name="GroupId" class="form-control"></select>