我创建了一个局部视图,供模型的“编辑”视图使用。我可以成功地编辑记录,但是在为我的“创建”视图使用部分视图时,我得到一个空引用异常。
这是我的部分观点:
@model MvcA.Models.Reason
@Html.LabelFor(model => model.reason)
@Html.EditorFor(model => model.reason)
@Html.LabelFor(model => model.Contract)
@Html.DropDownList("ContractId",
new SelectList(ViewBag.Contract as System.Collections.IEnumerable,
"ContractId","Name",Model.ContractID));
和 POST ActionResult:
[HttpPost]
public ActionResult Create(Reason reason)
{
if (ModelState.IsValid)
{
db.Reason.Add(reason);
db.SaveChanges();
return RedirectToAction("Index");
}
//invalid ...
GET 创建:
public ActionResult Create()
{
ViewBag.Contract = db.Contract.OrderBy(g => g.Name).ToList();
var reason = new Reason();
return View(reason);
}
输入/选择有效值后,表单提交将导致 Visual Studio 退出到部分视图中的“DropDownList”,并显示“未处理 NullReferenceException”。
如何确定导致 null 错误的原因?(我是 MVC 新手)
更新:错误似乎与我的控制器中的 [HttpPost] Create 方法有关。我使用与模型中的字段之一相同的名称来命名输入类......这似乎已经破坏了具有空引用异常的程序。