将默认值设置为 Html.DropDownListFor

Setting default value to Html.DropDownListFor

我正在使用 viewbag 在 mvc 中填充下拉列表。 如果页面未使用任何其他值保存,我想为此下拉列表设置一个默认值。 否则,select编辑的项目应该是他们 select 并保存页面的项目。

这就是我填充 viewbag 的方式

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

这是视图:

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

如果您想为下拉列表传递默认值,您可以通过默认值 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;

您必须使用不同的 DropDownListFor 覆盖。考虑一下:

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

现在,如果模型 属性 OfficeAddressCountry 不包含任何值,它将默认选择的选项设置为 "Default Selected Option"。

你可以查看this fiddle for default value and this with selected option which is in Model

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