Setting default value to Html.DropDownListFor

2019-07-09 07:09发布

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"}) %>

3条回答
forever°为你锁心
2楼-- · 2019-07-09 07:38

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;
查看更多
老娘就宠你
3楼-- · 2019-07-09 07:38

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

查看更多
SAY GOODBYE
4楼-- · 2019-07-09 07:38
<%: Html.DropDownListFor(m => m.OfficeAddressCountry,
                     ViewBag.ListOfCountries as SelectList,
                     "Default Selected Option",
                     new{@class="required"}) %>
查看更多
登录 后发表回答