在Asp.net Core MVC中,使用Razor视图和Ajax进行级联下拉框的操作是很常见的。下面是一个包含代码示例的解决方法:
首先,在Razor视图中定义两个下拉框,一个用于选择父级选项,另一个用于显示子级选项:
然后,在JavaScript代码中使用Ajax来获取子级选项的数据并动态更新子级下拉框:
$(document).ready(function () {
$('#parentDropdown').change(function () {
var parentId = $(this).val();
$.ajax({
url: '/Controller/GetChildOptions',
type: 'GET',
data: { parentId: parentId },
success: function (data) {
$('#childDropdown').html(data);
}
});
});
});
接下来,在Controller中实现GetChildOptions方法来返回子级选项的数据:
public IActionResult GetChildOptions(int parentId)
{
// 根据父级选项的值查询子级选项的数据
// 这里可以使用适合你的数据访问方式,比如查询数据库
List childOptions = new List
{
new SelectListItem { Value = "1", Text = "子级选项1" },
new SelectListItem { Value = "2", Text = "子级选项2" },
new SelectListItem { Value = "3", Text = "子级选项3" }
};
return PartialView("_ChildOptionsPartial", childOptions);
}
最后,在一个名为"_ChildOptionsPartial.cshtml"的局部视图中渲染子级选项的下拉框:
@model List
通过以上步骤,当父级选项发生变化时,Ajax请求会发送到GetChildOptions方法,并返回子级选项的数据。然后,JavaScript代码会使用返回的数据更新子级下拉框的内容。