MVC5视图下拉列表
本文关键字:下拉列表 视图 MVC5 | 更新日期: 2023-09-27 18:15:31
在c# MVC5 Internet应用程序视图中,我如何显示一个下拉列表,让用户从View Model
列表中选择一个列表项?
以下是ViewModel
代码:
public class MapLocationItemViewModel
{
[Editable(false)]
public int mapLocationForeignKeyId { get; set; }
public List<string> mapLocationItemTypes { get; set; }
public MapLocationItem mapLocationItem { get; set; }
}
以下是我目前在View
中的代码:
<div class="form-group">
@Html.LabelFor(model => model.mapLocationItem.mapLocationItemType, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.mapLocationItemTypes)
</div>
</div>
mapLocationItemTypes
中的每个项目当前显示为class="text-box single-line valid"
。
是否有一个MVC视图标签,将显示从list<string>
或array
填充的列表?
我尝试了以下代码:
@Html.DropDownListFor(model => model.mapLocationItemTypes)
然而,我得到一个编译错误,我不确定的值(s)为重载方法。
如何在视图中显示列表,以便用户可以从列表中选择列表项?
Thanks in advance
模型:
public List<SelectListItem> mapLocationItemTypes { get; set; }
public int mapLocationItemVal { get; set; }
视图:
@Html.DropDownListFor(m => m.mapLocationItemVal , new SelectList(Model.mapLocationItemTypes , "Value", "Text"), " -----Select List----- ")
在上面的例子中,DropDownListFor()
的第三个参数即" -----Select List----- "
将是您的下拉菜单的初始选择项,其值等于''
。
在POST期间,mapLocationItemVal
将在控制器上选择下拉值。
上面显示的代码是在MVC中绑定下拉列表的最好和最简单的方法。
试试这个;
我假设您需要在发布数据时根据所选值填充mapLocationItem.mapLocationItemType
。
@Html.DropDownListFor(model => model.mapLocationItem.mapLocationItemType, new SelectList(Model.mapLocationItemTypes))
如果你想添加CSS类,你可以这样做:
@Html.DropDownListFor(model => model.mapLocationItem.mapLocationItemType, new SelectList(Model.mapLocationItemTypes), new { @class = "your-class" })
在控制器中创建一个方法
Public ActionResult Index()
{
SampleDBContext db = new SampleDBContext();
ViewBag.table_name = new SelectList(db.table_name, "DataValueField", "DataTextField");
return View();
}
控制器视图
@Html.DropDownList("table_name", "select a item")