我正在制作一个显示动态数据的 MVC 4 网站。我有一个搜索功能,他们可以在输入框中输入 ID,然后仅查看与该 ID 相关的信息。好吧,我想通过使用 <select>
来限制搜索功能列表,因此只能选择有效的选项。
这是我写的代码:
<select>
@foreach (var item in Model)
{
<option value='@Html.ValueFor(modelItem => item.ResponseIdentifier)'></option>
}
</select>
我只是想获取 ID 并将其用作选择列表中的下拉值。然而,我得到的只是下拉列表中的空白区域。
我是网络编程新手,对 MVC 不太熟悉。我尝试了其他几种方法来获取该值,但没有任何效果。如果有人有任何提示那就太好了。谢谢堆栈溢出者! :)
最佳答案
您必须设置 value
和text
的select
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/