我一直在为此工作2天,但无法完成工作。我正在尝试使用默认值创建DropDownListFor(如在编辑页面中)。我让它在没有模型的情况下工作,但是当有模型时,它会将第一个项目显示为默认值,而不是我想要的值。 我想在一个SelectListItem添加所选= TRUE,而在foreach循环中像这样的是,仍然没有工作:如何在DropDownListFor中设置默认值
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 });
}
}
这一个工作,但没有一个模型。
我也试过在选择列表的对象一样,添加一个默认值:
@Html.DropDownListFor(model => model.Category, new SelectList(ViewBag.ListingCategories, "Id", "Name", Model.Category.Id))
它要么没有工作或有件事我没理解错,因为我试图适应一些例子,我在这里看到并在msdn的帖子上没有任何成功。
ViewBag.ListingCategories
包含从我的数据库中提取的我的类别的IEnumerable列表。
当然,Model.Category
包含一个带有Id(这是另一个表的外键)和一个名称的Category对象。
现在我没有选择,所以希望我可以在这里找到帮助。
谢谢。
你肯定'Model.Category.Id'持有的价值?如果是这样,它保存在ViewBag.ListingCategories内的值?我建议你在这里发布更多的视图代码。 – ilans 2015-06-11 05:39:08