带有静态内容的Html.dropdownlist

joh*_* Gu 1 c# asp.net asp.net-mvc html-helper asp.net-mvc-4

我正在开发一个asp.net mvc web应用程序,在我的高级搜索页面上,我想要有三个html.dropdownlist包含静态值: -

  1. 完全符合

  2. 从...开始

我需要下拉列表在任何搜索字段旁边.

那么任何一个建议如何我可以创建这样的静态html.dropdownlist,因为我所拥有的所有当前下拉列表都填充了我的模型中的动态数据?

谢谢

hut*_*oid 12

您的第一个选择是在视图中包含html:

<select id="selection">
    <option>Exact match</option>
    <option>Starts with</option>
</select>
Run Code Online (Sandbox Code Playgroud)

第二个选项是使用硬编码的内置html帮助器:

@Html.DropDownList("selection", new List<SelectListItem>() {new SelectListItem { Text="Exact match", Value = "Match"}, new SelectListItem { Text="Starts With", Value = "Starts"}})
Run Code Online (Sandbox Code Playgroud)

如果在您的网站上大量使用它,我更喜欢的第三个选项是创建一个html帮助扩展,您可以像这样简单地使用它:

@Html.SearchSelectionList()
Run Code Online (Sandbox Code Playgroud)

这是以下代码:

public static MvcHtmlString SearchSelectionList(this HtmlHelper htmlHelper)
{
    return htmlHelper.DropDownList("selection", new List<SelectListItem>() { new SelectListItem { Text = "Exact match", Value = "Match" }, new SelectListItem { Text = "Starts With", Value = "Starts" } });
}
Run Code Online (Sandbox Code Playgroud)


ced*_*lof 5

为什么只使用静态数据时需要 HTML 助手?

<select id="myDropDownList" name="myDropDownList">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
Run Code Online (Sandbox Code Playgroud)

或者这也许:

@{
var list = new SelectList(new []
    {
        new {ID="1", Name="volvo"},
        new {ID="2", Name="saab"},
        new {ID="3", Name="mercedes"},
        new {ID="4", Name="audi"},
    },
    "ID", "Name", 1);
}
@Html.DropDownList("list", list)
Run Code Online (Sandbox Code Playgroud)