我有这段代码。我的意图是创建一个字段,该字段可以作为textValue传递给SelectList对象。
这是我的两个实体:
public class Ski
{
public int ID { get; set; }
public int BrandID { get; set; }
public virtual Brand Brand { get; set; }
[NotMapped]
public string BrandName
{
get
{
return this.Brand.Name.ToString();
}
}
}
public enum BrandName
{
Blizzard, MCAD, ATOMIC
}
public class Brand
{
public int ID { get; set; }
public BrandName Name { get; set; }
}
和SelectList
初始化
ViewBag.SkiID = new SelectList(db.Skis, "ID", "BrandName");
但是这种解决方案似乎不起作用。
那怎么实现呢?
错误说我有一个关联的DataReader。
答案 0 :(得分:0)
创建此视图模型:
public class SkiViewModel
{
public string Text{ get; set; }
public int Value{ get; set; }
}
并更改您的代码:
var result = db.Skis.Select(x => new SkiViewModel()
{
Text = x.BrandName.Name ,
Value = ID
});
ViewBag.Skis = new SelectList(result, "Value", "Text");
并在视野范围内:
@Html.DropDownList("Value", new SelectListItem(ViewBag.Skis , "Value", "Text"))