将默认值设置为Html.DropDownListFor

时间:2015-07-07 06:35:13

标签: c# asp.net-mvc model-view-controller html.dropdownlistfor

我使用viewbag填充mvc中的下拉列表。 如果页面没有与任何其他值一起保存,我想为此下拉列表设置默认值。 否则,所选项目应该是他们选择的项目并保存页面。

这就是我填充我的viewbag的方式

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

这是观点方面:

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

3 个答案:

答案 0 :(得分:1)

如果要传递下拉列表的默认值,则可以使用默认值传递默认viewmodel / model

示例:

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

或者你可以试试这个

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

答案 1 :(得分:1)

你必须使用DropDownListFor的不同重叠。考虑一下:

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

现在,如果模型属性OfficeAddressCountry不包含任何值,它会将默认选定选项设置为“默认选定选项”。

您可以查看this fiddle for default valuethis with selected option which is in Model

答案 2 :(得分:-1)

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