asp.net mvc dropdownlistfor对象引用未设置为对象错误的实例

时间:2012-03-23 23:41:38

标签: asp.net-mvc drop-down-menu html.dropdownlistfor

我正在尝试使用asp.net mvc创建一个下拉列表。

型号:

    public string Status { get; set; }

    public List<SelectListItem> StatusList { get; set; }

    public AddUser()
    {
        StatusList = new List<SelectListItem>
                         {
                             new SelectListItem{Value = "0",Text = "0"},
                             new SelectListItem{Value = "1",Text = "1"}
                         };
    }

查看:

<%: Html.DropDownListFor(m=>m.Status,new SelectList(Model.StatusList,"Value","Text")) %>
<%: Html.ValidationMessageFor(m => m.Status) %>

我不知道为什么,但我一直收到这个错误:

对象引用未设置为对象的实例。

任何人都知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

当您将模型字段保留为null或模型为空

时,通常会发生此错误

确保&#34;状态&#34;不是空的,你可以在&#34; View&#34;中返回模型。就像这样:

    //end of an action code
    AddUser model = new AddUser();

    model.Status = "0"; //status can't be null (cause the the exception cited earlier)

    return View(model);  //if you do not pass the model as argument the model will be null in view
}

还有一个提示给你:
SelectList实现了IEnumerable<SelectListItem>,因此在视图中您的代码可能如下所示:

<%: Html.DropDownListFor(m=>m.Status, Model.StatusList) %>
<%: Html.ValidationMessageFor(m => m.Status) %>

您不需要再次实例化。

答案 1 :(得分:0)

我认为特拉维斯是对的,你忘了安装StatusList,也许它是空的。