dropdownlistfor对象引用未设置为无效的对象实例

时间:2015-04-09 11:23:53

标签: c# asp.net-mvc-4 razor

我似乎无法弄清楚我的代码有什么问题。 我想有一个显示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;
}

1 个答案:

答案 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之前尝试加入表。