C# 在MVC的SelectList中设置默认值#
我有一个C# 在MVC的SelectList中设置默认值#,c#,asp.net-mvc,selectlist,C#,Asp.net Mvc,Selectlist,我有一个选择列表: ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Name"); 我需要选择默认值,我尝试以下操作: ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Na
选择列表
:
ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Name");
我需要选择默认值,我尝试以下操作:
ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Name",999);
这是:
var valueSelected = db.Agencies.AsNoTracking().Where(_=>_.AgencyId == 999).First();
ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Name",valueSelected );
您需要将
AgentID
传递给SelectList
构造函数,以便设置为默认选中:
var valueSelected = db.Agencies.AsNoTracking().Where(=>.AgencyId == 999).First();
现在在选择列表中:
ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking().OrderBy(_ => _.AgencyID), "AgencyId", "Name",valueSelected.AgencyId );
尝试FirstOrDefault()
而不是First()
问题是什么?你还没有展示你的观点。假设您使用
@Html.DropDowmListFor(m=>m.someProperty,(SelectList)ViewData[“Agency”])
,则需要设置someProperty
的值-如果您绑定到属性,则属性的值决定了所选选项(尝试设置selectedValue
参数只是被html帮助程序忽略)您可以在dotnetfiddlevalueSelected.AgencyId=999中重现,因此这会创建与op问题中第二次尝试不起作用相同的内容。
var valueSelected = db
.Agencies.AsNoTracking()
.Where(_=>_.AgencyId == 999)
.FirstOrDefault();
ViewData["Agency"] = new SelectList(db.Agencies.AsNoTracking()
.OrderBy(_ => _.AgencyID), "AgencyId", "Name",valueSelected );