我正在创建一个显示动态数据的MVC 4网站。我有一个搜索功能,他们可以在输入框中输入ID,只查看与该ID相关的信息。我想通过使用<select>
列表来限制搜索功能,因此只能选择有效的选项。
这是我写的代码:
<select>
@foreach (var item in Model)
{
<option value='@Html.ValueFor(modelItem => item.ResponseIdentifier)'></option>
}
</select>
我只是想抓住Id并将其用作我的选择列表中的下拉值。但是,我得到的只是下拉列表中的空白区域。
我是网络编程的新手,对MVC不是很熟悉。我尝试了几个其他方法来获取值,但没有一个工作。如果有人有任何提示,那将是伟大的。谢谢Stack Overflowers! :)
答案 0 :(得分:2)
您必须设置value
html控件的text
和select
。 sintaxe是:
<option value='your value'>text</option>
尝试这样的事情:
<select>
@foreach (var item in Model)
{
<option value='@item.ResponseIdentifier'>@item.ResponseIdentifier</option>
}
</select>
或者,在我看来它更好。您在控制器上的操作,您可以在ViewBag
到fil lthe dropdownList上定义一个键,用于示例:
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;" })
答案 1 :(得分:1)
我认为您正在寻找的内容已经在讨论过了 this thread
<select>
@foreach (var item in Model)
{
<option value="@item.ResponseIdentifier"></option>
}
</select>
应该有效