I\'m using asp.net mvc 3.
I have this dropdownlist of countries and I want to add a placeholder for it. Here\'s my code:
@Html.DropDownList(\"country
In your collection ViewBag.Countries just insert a dummy record at the from of the collection with the name "-select-". You should be able to force the selected item with an alternate constructor like this:
@Html.DropDownList("country",
new SelectList(ViewBag.countries as System.Collections.IEnumerable,
"name", "name", "-select-"), new { @class="chzn-select", @style="width:160px;" } )
A quick and (not so) dirty solution involving jQuery.
Instead of adding a dummy item at the start of the list, prepend a new option that is disabled. The main advantage is that you don't have to mess with a dummy item in your list, and most important, you won't be able to select that dummy item in the page:
@Html.DropDownList("yourName", yourSelectList, new { @class = "form-control select-add-placeholder" })
Then somewhere after:
$(".select-add-placeholder").prepend("<option value='' disabled selected>Select an option...</option>");
Which looks like:
@Html.DropDownListFor(m => m.SelectedProductIDs,
Model.AvaliableProducts.ToSelectList("ID","Name"),
new { @class = "chzn-select",
data_placeholder="Please select a product" })...
Please see in more details : http://code.stylenet.ca/mvc3-data-placeholder-html5-attribute/
Maybe if you want, try this:
@Html.DropDownList("country",null,"-SELECT-",new { @class="chzn-select",@style="width:160px;" })