在存储下拉列表的ID时,我收到“system.nullreferenceexception对象引用没有设置为对象的实例”的错误。我已经浏览了很多网站和帖子但仍然遇到了这个错误。请帮我解决这个错误。
型号:
[Required]
[Display(Name = "Profession")]
public virtual string professionid { get; set; }
IEnumerable<SelectListItem> professionList = new List<SelectListItem>();
public SelectList getProfession()
{
professionList = (from m in _db.ProfessionInfos select m).AsEnumerable().Select(m => new SelectListItem() { Text = m.P_Name, Value = m.P_id.ToString() });
return new SelectList(professionList, "Value", "Text", professionid);
}
控制器:
[HttpGet]
public ActionResult Registration()
{
var model = new M_Reg();
return View(model);
}
查看:
<div class="editor-label">
@Html.LabelFor(m => m.professionid)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.professionid,Model.getProfession(),"Choose Profession")
@Html.ValidationMessageFor(m => m.professionid)
</div>
答案 0 :(得分:0)
将另外一个属性添加到SelectList ProfessionIds
并在您的控制器上为此属性设置值,如:
model.ProfessionIds=model.getProfession();
现在您可以在您的观看中使用它,例如:@Html.DropDownListFor(m => m.professionid,Model.ProfessionIds,"Choose Profession")
或者第二种方法是使用ViewBag将ProfessionIds从控制器传递到视图:
您的Controller的操作方法如下所示:
var model = new M_Reg();
ViewBag.Ids=model.getProfession();
return View(model);
在您的观点中使用
@Html.DropDownListFor(m => m.professionid,(Selectlist)ViewBag.Ids,"Choose Profession")