c# - 用动态列表填充<select>

标签 c# html css asp.net-mvc asp.net-mvc-4

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

这是我写的代码:

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

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

我是网络编程新手,对 MVC 不太熟悉。我尝试了其他几种方法来获取该值,但没有任何效果。如果有人有任何提示那就太好了。谢谢堆栈溢出者! :)

最佳答案

您必须设置 valuetextselect html 控件。语法是:

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

尝试这样的事情:

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

或者,我认为这样更好。您在 Controller 上的操作,您可以在 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 文件。在您的 View 中,您可以使用 ViewBag 上的此项来填充 DropDownList,使用 Html助手,例如:

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

关于c# - 用动态列表填充<select>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17994451/

相关文章:

css - 在 IE 的 div 中居中元素

c# - .NET MVC Razor 动态表单生成

c# - 如何在 C# 中实现通用堆栈?

多个字段的javascript字段计算

html - 如何让 SVG 容器拥抱它的内容?

html - 如何将 div block 中的文本设置为具有特定宽度?

css - 如何水平居中表格中的所有内容

c# - 在 Graphics 对象上绘制图像时出现 gdi+ 一般错误

c# - 在代码隐藏中创建一个 silverlight 边框?

javascript - 通过 Angular 从 UL 中删除 LI