C# Html.DropDownList()的默认空值

C# Html.DropDownList()的默认空值,c#,asp.net-mvc,C#,Asp.net Mvc,我正在创建一个下拉列表,如下所示: @Html.DropDownList("Segments", String.Empty) 并用ViewBag.Segments填充它 这个特定的Html.DropDownList重载会在列表顶部创建一个没有值的空白条目。当下拉列表没有选定的段时,它默认为值为1的列表中的第一个项目,而不是空白条目无值。p> HTML呈现为: <select id="foo" name="foo"> <option value></option

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

@Html.DropDownList("Segments", String.Empty)
并用ViewBag.Segments填充它

这个特定的Html.DropDownList重载会在列表顶部创建一个没有值的空白条目。当下拉列表没有选定的段时,它默认为值为1的列表中的第一个项目,而不是空白条目无值。p> 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助手HAVENT完成方法重载DROPPDLIST WHTCH u想要的。你可以创建你需要的列表。诸如此类:

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;
使用DropDownList后:

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

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;
使用DropDownList后:

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

您可以发布如何填写ViewBag.Segments吗?ViewBag.Segments是一个IEnumerableDo您的模型上有一个名为action parameter或route parameter或property的段吗?因为它似乎已经用一个选定的值填充了下拉列表。。。调试控制器操作并检查ModelState[Segments]的值。值您可以发布如何填写ViewBag.Segments?ViewBag.Segments是IEnumerableDo您的模型上是否有名为action parameter或route parameter或property的段?因为它似乎已经用一个选定的值填充了下拉列表。。。调试控制器操作并检查ModelState[Segments]的值。值他的问题不是缺少一个空白项,而是默认选中它。因此,实际上这让我找到了正确的答案。再加上将字符串.Empty optionLabel保留在Html.DropDownListSegments之外,这一切都起到了作用。他的问题不是缺少一个空白项,而是默认选中了它。因此,实际上这让我找到了正确的答案。这与将字符串.Empty optionLabel保留在Html.DropDownListSegments之外相结合,起到了作用。