我正在尝试使用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) %>
我不知道为什么,但我一直收到这个错误:
对象引用未设置为对象的实例。
任何人都知道我做错了什么?
答案 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,也许它是空的。