4

在 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 View 标记将显示从 alist<string>或a 填充的列表array

我尝试了以下代码:

@Html.DropDownListFor(model => model.mapLocationItemTypes)

但是,我收到编译错误,并且不确定重载方法的值。

在视图中显示列表的最佳方式是什么,以便用户可以从列表中选择一个列表项?

提前致谢

4

3 回答 3

20

模型 :

 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()在上面的示例中, ie的第三个参数" -----Select List----- "将是您的下拉列表的初始选定项,其值等于 ''.

在 POST 期间的控制器mapLocationItemVal将选择下拉值。

上面显示的代码是在 MVC 中绑定 Dropdownlist 的最佳和最简单的方法。

于 2014-07-30T12:29:26.817 回答
2

在控制器中创建一个方法

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")
于 2014-07-31T08:05:22.653 回答
2

尝试这个;

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" })
于 2014-07-30T12:29:22.343 回答