【问题标题】:MVC5 view drop down listMVC5 视图下拉列表
【发布时间】:2014-09-22 02:14:43
【问题描述】:

在 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&lt;string&gt;array 填充的列表?

我已经尝试了以下代码:

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

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

如何在视图中显示列表的最佳方式,以便用户可以从列表中选择列表项?

提前致谢

【问题讨论】:

    标签: c# asp.net-mvc-5 html.dropdownlistfor asp.net-mvc-views


    【解决方案1】:

    试试这个;

    我假设您在发布数据时需要根据所选值填写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" })
    

    【讨论】:

    • 谢谢,这很好用。但是,如何使用引导样式下拉列表?
    • 您可以在DropDownListFor 助手中添加html attributes,我已经更新了答案。无论如何,您不需要向模型添加其他属性作为另一个答案,因为您的模型中已经有 MapLocationItem 属性。如果您尝试这种方式,MapLocationItemmapLocationItemType 属性将在提交时填充。
    【解决方案2】:

    型号:

     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 中绑定 Dropdownlist 的最佳和最简单的方法。

    【讨论】:

    • 谢谢,这很好用。但是,如何使用引导样式下拉列表?
    • Bootstrap 只是一个用于设置 Web 应用程序样式的框架……您也可以在 MVC 中非常轻松地使用引导程序样式的下拉菜单……@user3736648
    • 您可以将引导 css 样式赋予 DropDownfor() 作为 @Html.DropDownListFor(m => m.mapLocationItemVal , new SelectList(Model.mapLocationItemTypes , "Value", "Text"), " -- ---选择列表----- ",new{ @class= "form-control" })--@user3736648
    • @user3736648-我认为上面的 cmets 会对您有所帮助...如果您需要更多帮助,请发表评论...
    【解决方案3】:

    在你的控制器中创建一个方法

    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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多