0

我有一个html.dropdownlist有4个选项。我希望它显示一个占位符文本不包含在选项中的默认值。我实现了一个类似的功能,在列表中添加了一个默认选项,但是选定的默认选项会导致div展开,并且会破坏页面布局。Mvc下拉列表默认值和占位符

<div style="float:left; padding-left:13.4%;"> 
         @Html.DropDownList("Adults", ViewData["Adults"] as List<SelectListItem>, new { @class = "dropdown2"}) 
</div> 

那就是控制器代码;

List<SelectListItem> adt = new List<SelectListItem>(); 

     //adt.Add(new SelectListItem 
     //{ 
     // Text = "1", 
     // Value = "1" 
     //}); 
     adt.Add(new SelectListItem 
     { 
      Text = "1", 
      Value = "1" 
     }); 
     adt.Add(new SelectListItem 
     { 
      Text = "2", 
      Value = "2" 
     }); 
     adt.Add(new SelectListItem 
     { 
      Text = "3", 
      Value = "3" 
     }); 
     adt.Add(new SelectListItem 
     { 
      Text = "4", 
      Value = "4" 
     }); 

     ViewData["Adults"] = adt; 
     return View(); 

即将推出新的mvc和任何贡献将不胜感激。谢谢。

回答

0

添加占位符文本时,如果不是不可能直接执行它是棘手的。我建议使用Chosen(JQuery插件)。这是非常容易使用,并使下拉美丽。与选择的下拉的

https://harvesthq.github.io/chosen/

实施例:

@Html.DropDownListFor(model => model.Example, Model.Example, new { @class = "chosen", data_placeholder="Choose items"}) 
0

可以添加jQuery代码添加选项的下拉列表与选择属性,从而选择将被设置为占位符:

$('#selectid').append($('<option/>', { 
 
     value: value, 
 
     text : value 
 
    }));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<select id='selectid'> 
 
    <option value="" disabled selected>Select your option</option> 
 
    <option value="hurr">Durr</option> 
 
</select>