在ASP.NET Core 2.2中,可以使用JavaScript或者AJAX来处理两个下拉表单字段之间的依赖关系。以下是一个使用AJAX的示例:
$(document).ready(function () {
$("#categoryDropdown").change(function () {
var categoryId = $(this).val();
$.ajax({
url: "/Home/GetSubCategories", // 替换成你的Controller和Action的路径
type: "GET",
data: { categoryId: categoryId },
success: function (data) {
$("#subCategoryDropdown").empty();
$("#subCategoryDropdown").append('');
$.each(data, function (index, subCategory) {
$("#subCategoryDropdown").append('');
});
}
});
});
$("#subCategoryDropdown").change(function () {
var subCategoryId = $(this).val();
$.ajax({
url: "/Home/GetResult", // 替换成你的Controller和Action的路径
type: "GET",
data: { subCategoryId: subCategoryId },
success: function (data) {
$("#result").text(data);
}
});
});
});
public IActionResult GetSubCategories(int categoryId)
{
// 根据categoryId查询对应的子分类数据,返回JSON结果
// 示例代码:
var subCategories = _context.SubCategories.Where(s => s.CategoryId == categoryId).ToList();
return Json(subCategories);
}
public IActionResult GetResult(int subCategoryId)
{
// 根据subCategoryId查询结果,并返回
// 示例代码:
var result = _context.Results.FirstOrDefault(r => r.SubCategoryId == subCategoryId);
return Content(result != null ? result.Name : "");
}
请注意,上述示例中的Controller和Action的路径需要根据你的项目实际情况进行修改。另外,示例中的数据库查询代码也需要根据你的数据结构进行适当修改。
通过上述步骤,当用户在第一个下拉表单中选择一个分类时,会发送一个AJAX请求到相应的Action方法,获取该分类下的子分类数据并填充到第二个下拉表单中。当用户在第二个下拉表单中选择一个子分类时,会再次发送一个AJAX请求到另一个Action方法,获取结果并显示在页面上。