【问题标题】:Creating a dropdown list for MVC ASP.NET为 MVC ASP.NET 创建下拉列表
【发布时间】:2013-08-27 09:01:56
【问题描述】:

我目前在创建下拉列表时遇到问题。在我的视图中,我需要有一个标签和一个下拉列表,其中来自 tableA 的标签和来自 tableB 的下拉列表。下拉列表的值将基于 tableA 中的值。请看下面的代码

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @foreach (var x in item.UserConfigDtls)
        {
            @Html.DisplayFor(modelItem => x.ListOfValue)<br/>
        }
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.UserConfigHdrID }) |
        @Html.ActionLink("Details", "Details", new { id=item.UserConfigHdrID }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.UserConfigHdrID })
    </td>

</tr>
}

从上面的代码中,我可以成功地显示一个名称和对应的值列表。现在我的问题是我希望单独的一组值成为下拉列表而不是显示它们。由于我是 MVC ASP.NET 的新手,请问我该怎么做。

【问题讨论】:

  • 感谢您的回复。它不适用于我的情况。如果我能在视图中解决它会很好。我知道有 html.dropdownlist 和 html.dropdownlistfor 但是我不知道如何使用它们。
  • @Jatin patil,它现在可以工作了。您对如何固定下拉列表的宽度有任何想法吗?
  • @Html.DropDownListFor( m =&gt; Model.typeToStoreValue, Model.List, new { style = "width: 250px;" } )

标签: asp.net-mvc asp.net-mvc-4 razor html-helper


【解决方案1】:

试试:

@Html.DropDownListFor(modelItem => x.ListOfValue, new SelectList(item.UserConfigDtls, "Id", "Name"), "Select")

【讨论】:

  • 您想在哪个字段中存储您从组合框中选择的值?
【解决方案2】:

在控制器中将选择列表绑定到您的模型:

    public ActionResult Index()
    {
        YourType model = new YourType ();
        model.List = GetSelectList();
        return View(model);
    }

    [NonAction]
    public IEnumerable<SelectListItem> GetSelectList()
    {
        var items = //Your List Object
        return items.Select(name => new SelectListItem() {
                    Text = name.prop,
                    Value = name.prop2
               });
    }

然后在视图中你可以绑定列表如下:

@Html.DropDownListFor(m => Model.typeToStoreValue,Model.List)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    相关资源
    最近更新 更多