Rajan Goswami
Rajan Goswami

Reputation: 769

Setting default value to Html.DropDownListFor

I am populating a dropdownlist in mvc using viewbag. i want to set a default value to this dropdownlist, if the page is not saved with any other value. Otherwise the selected item should be the one they select and save the page.

this is how i populate my viewbag

ViewBag.ListOfCountries = new SelectList(Db.Countries, "CountryCode", "CountryName");

this is the view side:

<%: Html.DropDownListFor(m => m.OfficeAddressCountry, (IEnumerable<SelectListItem>)ViewBag.ListOfCountries, new{@class="required"}) %>

Upvotes: 2

Views: 18313

Answers (3)

<%: Html.DropDownListFor(m => m.OfficeAddressCountry,
                     ViewBag.ListOfCountries as SelectList,
                     "Default Selected Option",
                     new{@class="required"}) %>

Upvotes: -1

Ehsan Sajjad
Ehsan Sajjad

Reputation: 62488

You have to use different overlaod of DropDownListFor. Consider this:

<%: Html.DropDownListFor(m => m.OfficeAddressCountry,
                         ViewBag.ListOfCountries as SelectList,
                         "Default Selected Option",
                         new{@class="required"}) %>

Now it will set default selected option to "Default Selected Option" if the model property OfficeAddressCountry contains no value.

You can check this fiddle for default value and this with selected option which is in Model

Upvotes: 1

Pranay Rana
Pranay Rana

Reputation: 176896

If you want to pass default value for the dropdown list than you can do is pass default viewmodel/model with default value

Example :

public ActionResult New()
{
    MyViewModel myViewModel = new MyViewModel ();
    myViewModel.OfficeAddressCountry = default value; 
    //Pass it to the view using the `ActionResult`
    return ActionResult( myViewModel);
}

or you can try this

 var list = new SelectList(Db.Countries, "CountryCode", "CountryName")
 list.Add(new SelectListItem(){Value = 1,Text = "Deafult Item",Selected = true };)
 ViewBag.ListOfCountries = list;

Upvotes: 1

Related Questions