📅  最后修改于: 2023-12-03 15:21:00.622000             🧑  作者: Mango
在ASP.NET MVC框架中,ViewBag是一种动态类型的属性集合,可以在控制器中给视图传递数据。其中,包括常见的字符串、数字、布尔型等基础数据类型,也可以是复杂类型,比如实体类、集合等。
在网页中,下拉列表是一种常见的用户交互控件,可以让用户从预定义的选项中选择一个值。下拉列表的内容通常是从数据库中读取的,也可以是手动定义的一组数据。
下面我们将结合ViewBag和下拉列表,介绍如何在ASP.NET MVC中创建一个动态的下拉列表。
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个参数:
最后,我们还需要在表单中添加一个提交按钮,用于提交表单数据,这里使用的是input标签。
这样,一个简单的动态下拉列表就创建好了。
总结:使用ViewBag和Html.DropDownList()方法,我们可以很方便地构建一个动态下拉列表,只需要在控制器中传递对应的数据,然后在视图中渲染。