我有一个名为SkillLevelViewModel的视图模型,它包含两个属性,Id和值。根据我传入的organizationId,我返回这些Id和值的SelectList。我能够在我的视图中看到一个选择列表迭代组织匹配的次数,但是,我无法动态地在每个下拉列表中设置所选项目。
假设数据看起来像这样
如果我在控制器中添加一个整数值作为最后一个参数,我将在视图中看到该项被选中,但我正在努力获取从数据库返回的每一行的值;我尝试使用data.SkillLevelId但收到此错误:'List'不包含'SkillLevelId'的定义
- 这可行,但不是动态的
ViewBag.SkillLevelList = new SelectList(data, "SkillLevelId", "SkillLevel", 2);
ViewModel
public class SkillLevelViewModel
{
public int SkillLevelId { get; set; }
public string SkillLevel { get; set; }
}
查看
@Html.DropDownList("skillLevel", (SelectList)ViewBag.SkillLevelList)
控制器
var data = GetSkillLevels(userInfo.OrganizationId);
ViewBag.SkillLevelList = new SelectList(data, "SkillLevelId", "SkillLevel", SET SELECTED VALUE OF EACH DROP DOWN WITH SkillLevelId);
public List<SkillLevelViewModel> GetSkillLevels(int organizationId)
{
var skillLevels = new List<SkillLevelViewModel>();
using (Entity db = new Entity())
{
var data = from sl in db.SkillLevels
where sl.Organization_ID == organizationId
select new SkillLevelViewModel()
{
SkillLevelId = sl.SkillLevel_ID,
SkillLevel = sl.SkillLevel1
};
foreach(var item in data)
{
skillLevels.Add(item);
}
}
return skillLevels;
}
}