我已经为此工作了2天,但我无法使其发挥作用。我尝试使用默认值创建DropDownListFor(就像在编辑页面中一样)。我没有模型就可以工作,但是当有模型时,它会将第一个项目显示为默认项目,而不是我想要的项目。 我尝试在SelectListItem中添加一个Selected = true,同时在这样的foreach循环中,仍然不起作用:
List<SelectListItem> selectListCategories = new List<SelectListItem>();
foreach(var item in listCategories)
{
if(item.Id == Model.Category.Id)
{
selectListCategories.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Name, Selected=true });
}
else
{
selectListCategories.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Name });
}
}
这个有效,但没有模特。
我还尝试在SelectList对象中添加一个默认值:
@Html.DropDownListFor(model => model.Category, new SelectList(ViewBag.ListingCategories, "Id", "Name", Model.Category.Id))
它要么不起作用,要么我没有正确理解,因为我尝试调整我在这里和msdn帖子上看到的一些例子,但没有任何成功。
ViewBag.ListingCategories
包含从我的数据库中获取的IEnumerable我的类别列表。
当然,Model.Category
包含一个带有Id的Category对象(这是另一个表的外键)和一个名称。
现在我没有选择,所以希望我能在这里找到帮助。
感谢。
答案 0 :(得分:0)
见answer(@Elad Lachmi):
SelectListItem具有Selected属性。如果你正在创建 动态选择ListItems,你可以设置你想要的那个 Selected = true,它将是默认值。
SelectListItem defaultItem = new SelectListItem()
{
Value = 1,
Text = "Deafult Item",
Selected = true
};