📜  viewbag 的下拉列表 (1)

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

ViewBag 的下拉列表

在ASP.NET MVC框架中,ViewBag是一种动态类型的属性集合,可以在控制器中给视图传递数据。其中,包括常见的字符串、数字、布尔型等基础数据类型,也可以是复杂类型,比如实体类、集合等。

在网页中,下拉列表是一种常见的用户交互控件,可以让用户从预定义的选项中选择一个值。下拉列表的内容通常是从数据库中读取的,也可以是手动定义的一组数据。

下面我们将结合ViewBag和下拉列表,介绍如何在ASP.NET MVC中创建一个动态的下拉列表。

在控制器中,将数据通过ViewBag传递到视图
public ActionResult Index()
{
    List<string> productList = new List<string>
    {
        "苹果",
        "香蕉",
        "梨子",
        "橙子",
        "葡萄",
        "草莓",
        "桃子"
    };

    ViewBag.ProductList = new SelectList(productList);

    return View();
}

在控制器中,我们首先构造了一个字符串类型的List集合,用于存储下拉列表中的选项。然后,将其存储在ViewBag对象的ProductList属性中。这里需要注意的是,在存储之前,我们使用了SelectList类对ProductList进行了包装,以便在视图中能够正确的渲染成下拉列表。

在视图中,渲染下拉列表
@{
    ViewBag.Title = "Index";
}

<h2>动态下拉列表示例</h2>

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-horizontal" }))
{
    @Html.DropDownList("SelectedProduct", ViewBag.ProductList as SelectList, new { @class = "form-control" })
    
    <br />

    <input type="submit" value="提交" class="btn btn-primary" />
}

在视图中,我们首先引用了ViewBag的ProductList属性,并将其强制转换成了SelectList类型。接着,使用Html.DropDownList()方法渲染成下拉列表,该方法需要接受3个参数:

  • 参数1:name属性,用于提交表单数据时的名称
  • 参数2:下拉列表的选项和值,这里我们直接使用ViewBag.ProductList as SelectList来获取
  • 参数3:HTML属性,比如样式、大小等

最后,我们还需要在表单中添加一个提交按钮,用于提交表单数据,这里使用的是input标签。

这样,一个简单的动态下拉列表就创建好了。

总结:使用ViewBag和Html.DropDownList()方法,我们可以很方便地构建一个动态下拉列表,只需要在控制器中传递对应的数据,然后在视图中渲染。