在ASP.NET Core Razor页面中,你可以使用下拉列表对ViewBag中的内容进行变量筛选。下面是一个简单的示例代码:
在Razor视图中,你可以添加一个下拉列表和一个表格来展示筛选后的内容:
@model IEnumerable- // 假设你的模型是Item
@{
ViewData["Title"] = "Items";
}
Items
@Html.DropDownList("Category", ViewBag.Categories as SelectList, "All", new { onchange = "this.form.submit();" })
Name
Category
@foreach (var item in Model)
{
@item.Name
@item.Category
}
在控制器中,你可以将筛选后的数据存储在ViewBag中,并将类别列表提供给ViewBag.Categories:
public IActionResult Index(string category)
{
var items = GetItemsFromDatabase(); // 从数据库获取数据
if (!string.IsNullOrEmpty(category) && category != "All")
{
items = items.Where(i => i.Category == category); // 根据类别进行筛选
}
ViewBag.Categories = GetCategoriesFromDatabase(); // 从数据库获取类别列表
ViewBag.SelectedCategory = category; // 存储选择的类别
return View(items);
}
这样,当用户选择下拉列表中的选项时,页面会自动提交表单,并将选项的值作为参数传递给控制器中的Index方法。然后,控制器根据选项的值进行筛选,并将结果存储在ViewBag中,供视图使用。
请注意,上述代码只是一个示例,你需要根据你的实际需求进行调整和扩展。