📜  asp.net mvc 5 codefirst 下拉列表 - C# (1)

📅  最后修改于: 2023-12-03 15:29:30.199000             🧑  作者: Mango

ASP.NET MVC 5 CodeFirst Dropdown List - C#

简介

在使用 ASP.NET MVC 5 CodeFirst 构建应用程序时,你可能需要创建一个下拉列表供用户选择。本文将介绍如何在 C# 中实现下拉列表的创建。

步骤
1. 创建视图模型

首先需要创建一个视图模型类,该类包含下拉列表需要显示的数据。例如,我们将创建一个 CategoryViewModel 类,它包含 CategoryName 和 CategoryId 两个属性。

public class CategoryViewModel
{
    public int CategoryId { get; set; }
    public string CategoryName { get; set; }
}
2. 创建控制器方法

接下来,在控制器中创建一个方法来填充视图模型并将其传递给视图。在这个例子中,我们将创建一个 Categories 方法,用来获取所有的 Category 对象并把它们转化为 CategoryViewModel 对象列表。

public ActionResult Categories()
{
    var categories = db.Categories.ToList();
    var categoryViewModels = categories
        .Select(c => new CategoryViewModel
            {
                CategoryId = c.CategoryId,
                CategoryName = c.CategoryName
            })
        .ToList();
    return View(categoryViewModels);
}
3. 创建视图

现在,我们需要创建一个视图来显示 CategoryViewModel 对象列表并创建下拉列表。我们将使用 Razor 视图引擎,并使用 Html.DropDownListFor 帮助器方法创建下拉列表。

@model List<CategoryViewModel>
@{
    ViewBag.Title = "Categories";
}
 
<h2>Categories</h2>
 
@using (Html.BeginForm())
{
    @Html.DropDownListFor(m => m.FirstOrDefault().CategoryId, new SelectList(Model, "CategoryId", "CategoryName"))
 
    <input type="submit" value="Submit" />
}

在这个例子中,我们首先声明了一个模型,它是由 CategoryViewModel 对象列表组成的。然后,我们在页面上创建一个 Html 表单。使用 Html.DropDownListFor 帮助器方法,我们可以创建一个下拉列表,并将其设置为 CategoryId 属性。我们通过 SelectList 帮助器方法来创建下拉列表需要显示的数据。这个方法接受一个数据源和两个属性的名称,一个用于 Value,一个用于 Text。在这里,我们使用 CategoryId 属性作为值,使用 CategoryName 属性作为文本。

4. 处理表单提交

最后,我们需要在控制器中创建一个 POST 方法来处理表单提交。在这个例子中,我们将简单地重定向到另一个视图。

[HttpPost]
public ActionResult Categories(int categoryId)
{
    return RedirectToAction("Index");
}

在这里,我们在控制器中创建了一个 POST 方法,它接受一个 categoryId 参数。当表单提交时,MVC 将从表单中将 categoryId 提取出来并将其作为参数传递给这个方法。在这个方法内部,我们简单地将请求重定向到 Index 视图。

总结

本文介绍了如何在 ASP.NET MVC 5 CodeFirst 中创建下拉列表。首先,我们创建了一个视图模型类来存储下拉列表需要显示的数据。然后,我们创建了一个控制器方法来获取数据,并将其传递给视图。接下来,我们创建了一个视图来显示数据并创建下拉列表。最后,我们创建了一个 POST 方法来处理表单提交。