c# - Html.DropDownList() 的默认空值

标签 c# asp.net-mvc

我正在创建一个下拉列表,如下所示:

@Html.DropDownList("Segments", String.Empty)

并用 ViewBag.Segments 填充它

Html.DropDownList 的这种特殊重载在列表顶部创建了一个空白条目,没有任何值。当下拉列表没有选定的段时,它默认为列表中的第一项(值为 1)而不是空白条目(无值)。

HTML 呈现为:

<select id="foo" name="foo">
  <option value></option>
  <option selected="selected" value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>

有没有办法让它默认为空白项?

最佳答案

Html 助手尚未完成您想要的方法重载 DropDownList。你可以创建你需要的列表。类似的东西:

List<SelectListItem> list = new List<SelectListItem>();
list.add(new SelectListItem(){ Value="", Key = 0});
foreach(var item in Repositury){
   list.add(new SelectListItem(){ Value=item.value, Key = item.key});
}
ViewBag.list = list;

使用下拉列表后:

@Html.DropDownList("Segments", (List<SelectListItem>)ViewBag.list)

关于c# - Html.DropDownList() 的默认空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22181696/

相关文章:

asp.net-mvc - 你知道任何 ASP.NET MVC 代码生成器吗?

c# - 在哪里将业务模型转换为 View 模型?

c# - 使用固定长度字段的可变长度数组解析消息

c# - 按钮边框在 XAML/C# 中被切断

c# - 在 try block 中重新抛出异常 c#

c# - 在 ASP.NET MVC 中从 MySQL 查询是否有更简单的方法?

asp.net-mvc - Asp.net MVC 部分 View 表单提交问题

c# - 在 ASP.NET 上流式传输 MP3 block

c# - 在 C# 中是否存在将数据硬编码为代码的隐藏费用?

c# - Entity Framework Core ExecuteSqlCommand 使用 SQLite 删除不起作用