填充<;选择>;具有动态列表

本文关键字:动态 列表 选择 lt 填充 gt | 更新日期: 2023-09-27 18:25:45

我正在制作一个显示动态数据的MVC 4网站。我有一个搜索功能,他们可以在输入框中输入Id,只查看与该Id相关的信息。我想通过使用<select>列表来限制搜索功能,这样只能选择有效的选项。

这是我写的代码:

<select>
    @foreach (var item in Model)
    {
        <option value='@Html.ValueFor(modelItem => item.ResponseIdentifier)'></option>
    }
</select>

我只是想获取Id,并将其用作选择列表中的下拉值。然而,我得到的只是下拉列表中的空白。

我是web编程的新手,对MVC不是很熟悉。我尝试了其他几种方法来获取值,但都不起作用。如果有人有什么建议,那就太好了。谢谢Stack Overflowers!:)

填充<;选择>;具有动态列表

您必须设置select html控件的valuetext。sintaxe是:

<option value='your value'>text</option>

试试这样的东西:

<select>
    @foreach (var item in Model)
    {
        <option value='@item.ResponseIdentifier'>@item.ResponseIdentifier</option>
    }
</select>

或者,在我看来更好。你在控制器上的操作,你可以在ViewBag上定义一个键来填充下拉列表,例如:

ViewBag.Cities = new SelectList(new[]
{
    new { Id = "1", Name = "New York" },
    new { Id = "2", Name = "São Paulo" },
    new { Id = "3", Name = "London" },
}, "Id", "Name");

为了填充这个ViewBag,它可以来自任何地方的数据库或xml文件。在您的视图中,您可以使用ViewBag上的此项目来使用Html助手填写DropDownList,例如:

@Html.DropDownList("City", (IEnumerable<SelectListItem>)ViewBag.Cities, new { style = "max-width: 600px;" })

我想您正在搜索的内容已经在中讨论过了这个线程

<select>
@foreach (var item in Model)
{
    <option value="@item.ResponseIdentifier"></option>
}
</select>

应该工作