要将数据库中的内容转换为强类型下拉框,你可以按照以下步骤进行操作:

  1. 在模型类中创建一个属性来表示下拉框的选项列表。例如,假设你有一个名为'Category'的模型类,你可以在该类中添加一个名为'Categories'的属性:
public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class MyViewModel
{
    public IEnumerable<Category> Categories { get; set; }
    public int SelectedCategoryId { get; set; }
}
  1. 在控制器中从数据库中获取选项列表,并将其赋值给视图模型的'Categories'属性。例如,假设你使用Entity Framework来访问数据库:
public class MyController : Controller
{
    private readonly ApplicationDbContext _context;

    public MyController(ApplicationDbContext context)
    {
        _context = context;
    }

    public IActionResult Create()
    {
        var viewModel = new MyViewModel
        {
            Categories = _context.Categories.ToList()
        };

        return View(viewModel);
    }

    [HttpPost]
    public IActionResult Create(MyViewModel viewModel)
    {
        // 进行其他处理

        return RedirectToAction("Index");
    }
}
  1. 在视图中使用Html.DropDownListFor辅助方法来创建强类型下拉框。例如,在创建视图中的表单中,你可以使用以下代码来生成下拉框:
@model MyViewModel

<form asp-action="Create" method="post">
    <div class="form-group">
        <label asp-for="SelectedCategoryId">Category:</label>
        @Html.DropDownListFor(m => m.SelectedCategoryId, new SelectList(Model.Categories, "Id", "Name"), "Please select a category", new { @class = "form-control" })
        <span asp-validation-for="SelectedCategoryId" class="text-danger"></span>
    </div>
    <button type="submit" class="btn btn-primary">Create</button>
</form>

在上述代码中,Html.DropDownListFor方法接受三个参数:

  • 第一个参数是表示选中的值的表达式。在这里,我们使用m => m.SelectedCategoryId来表示SelectedCategoryId属性。
  • 第二个参数是一个SelectList对象,它包含选项列表的数据。我们使用new SelectList(Model.Categories, "Id", "Name")来创建一个以'Id'属性作为值、'Name'属性作为显示文本的下拉框选项列表。
  • 第三个参数是一个字符串,用于在下拉框中添加一个默认的空选项。
  • 第四个参数是一个对象,用于设置下拉框的HTML属性,例如class

这样,在视图中就会生成一个强类型的下拉框,其选项由数据库中的数据提供,并且选中的值会与视图模型中的属性保持一致。

ASP.NET MVC 强类型下拉框:数据库数据绑定

原文地址: https://www.cveoy.top/t/topic/qfXz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录