我使用viewbag填充mvc中的下拉列表。 如果页面没有与任何其他值一起保存,我想为此下拉列表设置默认值。 否则,所选项目应该是他们选择的项目并保存页面。
这就是我填充我的viewbag的方式
ViewBag.ListOfCountries = new SelectList(Db.Countries, "CountryCode", "CountryName");
这是观点方面:
<%: Html.DropDownListFor(m => m.OfficeAddressCountry, (IEnumerable<SelectListItem>)ViewBag.ListOfCountries, new{@class="required"}) %>
答案 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 value和this with selected option which is in Model
答案 2 :(得分:-1)
<%: Html.DropDownListFor(m => m.OfficeAddressCountry,
ViewBag.ListOfCountries as SelectList,
"Default Selected Option",
new{@class="required"}) %>