对象引用未设置为DropDownListFor上的对象实例

时间:2012-05-31 16:46:52

标签: asp.net-mvc

这让我抓狂!我正在尝试创建一个下拉列表,从数据库中获取它的值。我是MVC的新手,所以它可能很简单,但我无法理解。请帮忙!

查看型号:

public class LoadInputModel
{
    public GeoRegion GeoRegion { get; set; }
    public System.Guid Id { get; set; }
    public IEnumerable<GeoRegion> Description { get; set; }

}

这是我的控制器:

[HttpPost]
    public ActionResult LoadShape(LoadInputModel LoadInputModel)
    {
        LoadInputModel.Description = db.GeoRegions.Select(a => a);

        return View(LoadInputModel);
}

这是我的htmlhelper:

@Html.DropDownListFor(m => m.Description,Model.Description.Select(c => new SelectListItem { Text = c.Description, Value = c.Id.ToString() }), "-----Select Category----")

1 个答案:

答案 0 :(得分:0)

我猜您的Description属性值为null,因此您可能需要在为其分配一些值之前对其进行初始化

 if( LoadInputModel.Description==null)
 {
     LoadInputModel.Description=new List<GeoRegion>();
 }
 LoadInputModel.Description = db.GeoRegions.Select(a => a);

或者你可以在班级自己这样做,所以你不需要在很多地方做这件事

public class LoadInputModel
{
    public GeoRegion GeoRegion { get; set; }
    public System.Guid Id { get; set; }
    public IEnumerable<GeoRegion> Description { get; set; }

    public LoadInputModel()
    {
       if(Description==null)
        {
         Description=new List<GeoRegion>();
        }
    }
}