我似乎无法弄清楚我的代码有什么问题。 我想有一个显示Director名称而不是ID的下拉列表。 如果我离开下拉列表,工作完全正常。
视图中的麻烦部分"创建":
<div class="editor-field">
@Html.DropDownListFor(model => model.DirectorID, Model.GetDirectors())
@Html.ValidationMessageFor(model => model.DirectorID)
</div>
模型中的相应方法&#34;电影&#34;:
public IEnumerable<SelectListItem> GetDirectors()
{
var directors = db.Directors.ToList();
IList<SelectListItem> items = new List<SelectListItem> { };
foreach(var item in directors)
{
items.Add(new SelectListItem()
{
Value = item.DirectorID.ToString(),
Text = item.People.Firstname + " " + item.People.Lastname
});
}
return items;
}
答案 0 :(得分:0)
在模型中,我有以下属性
[Display("DirectorName")]
public int DirectorID { get; set; }
public IEnumerable<SelectListItem> DirectorList { get; set; }
DirectorDA.cs类中的Bellow代码
public IEnumerable<Director> GetDirector()
{
return (from dir in db.Director select cus).AsEnumerable();
}
以下代码在我的控制器中
DirectorDA director = new GetDirector();
var directors = director .Director();
List<SelectListItem> items = new List<SelectListItem> { };
foreach (var item in directors)
{
items.Add(new SelectListItem()
{
Value = item.DirectorID.ToString(),
Text = item.Name
});
}
我视图中的Bellow代码
@Html.LabelFor(model=>model.DirectorID)
@Html.DropDownListFor(model=>model.DirectorID, Model.DirectorList)
这对我有用,但我有一张桌子 导向器。您可以在分配给List之前尝试加入表。