<分区>
这是我第一次既编写 MVC 5 应用程序又使用 C#。我已经走了很远,并且能够解决我遇到的许多错误,但我在这个问题上遇到了困难。
我设置了一些模型和表,包括外键引用。在我的索引页面上,每条记录都使用以下 Controller 代码显示外键值:
索引 Controller
public ActionResult Index(int? filterDwg)
{
var checkOut = db.CheckOut.Include(c => c.CheckOutStatus).Include(c => c.DwgList);
var checkedOut = checkOut.Where(s => s.CheckStatus == (1));
//Filtering by Drawing
if (filterDwg != null)
{
checkedOut = checkedOut.Where(d => d.DrawingId == (filterDwg));
}
return View(checkedOut.ToList());
}
现在,我的详情页,我的controller是这样的:
细节 Controller
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
CheckOut checkOut = db.CheckOut.Find(id);
if (checkOut == null)
{
return HttpNotFound();
}
return View(checkOut);
}
当我拉出以下 View 时:
详情 View
@model NoDwgASP.Models.CheckOut
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>CheckOut</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.CheckOutStatus.CheckStatusName)
</dt>
<dd>
@Html.DisplayFor(model => model.CheckOutStatus.CheckStatusName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.DwgList.DwgNum)
</dt>
<dd>
@Html.DisplayFor(model => model.DwgList.DwgNum)
</dd>
<dt>
@Html.DisplayNameFor(model => model.UserInitials)
</dt>
<dd>
@Html.DisplayFor(model => model.UserInitials)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Project)
</dt>
<dd>
@Html.DisplayFor(model => model.Project)
</dd>
<dt>
@Html.DisplayNameFor(model => model.CheckOutDate)
</dt>
<dd>
@Html.DisplayFor(model => model.CheckOutDate)
</dd>
<dt>
@Html.DisplayNameFor(model => model.ReturnDate)
</dt>
<dd>
@Html.DisplayFor(model => model.ReturnDate)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.CheckId }) |
@Html.ActionLink("Back to List", "Index")
</p>
DwgNum 和 CheckStatusName 字段为空白。这些字段是整数,并且是绑定(bind)到另一个数据库的外键,该数据库具有这些属性的字符串值。
我意识到我需要这样的东西
var checkOut = db.CheckOut.Include(c => c.CheckOutStatus).Include(c => c.DwgList)
但是,正如我在索引 Controller 中所做的那样,我不能简单地将 .Include 附加到
CheckOut checkOut = db.CheckOut.Find(id);
有人有什么建议吗?我很困惑,我一直没能找到任何相关的问题。