我遇到的情况是我的编辑视图没有显示从我的控制器通过模型传递的数据。在调试时我可以清楚地看到模型包含数据。这也是之前正在工作并在没有警告的情况下停止的事情,它可能与我在代码中做出的其他更改有关,但我不知道他们的关系。
我试图完全删除编辑视图并创建一个新视图,但问题仍然存在。
以下是我的观看片段:
<div class="form-group">
@Html.LabelFor(model => model.Description, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextAreaFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CategoryId, "CategoryId", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("CategoryId", (SelectList)ViewBag.CategoryList)
@Html.ValidationMessageFor(model => model.CategoryId)
</div>
</div>
以下是调用视图的控制器:
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
ViewBag.IssueId = id;
_issue = _context.Issues.Find(id);
_issue.Users = _context.Users.ToList();
var firstOrDefault = _issue.Users.FirstOrDefault(u => u.Id == _issue.CreatedBy);
if (firstOrDefault != null)
ViewBag.CreatedName = firstOrDefault.FullName;
_issue.IssueTexts = _context.IssueTexts.Where(i => i.IssueId == id).ToList();
if (_issue == null)
{
return HttpNotFound();
}
PopulateDropDownLists();
return View(_issue);
}
正如我之前所说的那样,它在没有任何警告的情况下破碎了,所以我不确定从哪个方向开始查看。如果对你们中的某些人来说这是微不足道的,我会提前为我的天真道歉。任何援助都会很棒。
答案 0 :(得分:0)
所以问题是PopulateDropDownLists()方法再次实例化_issue对象。我之前遇到的问题是_issue方法内部为null并且我实例化了它而没有先检查它是否为null。
请原谅新秀的举动。谢谢。