C# MVC+中的详细信息视图;连接表
我需要一些关于这个问题的建议/帮助。我一直在网上搜寻,我有点困惑 基本上我有一个视图索引,它列出了我所有的电影。有一个详细视图,显示有关该影片的其他信息。我的问题是,当我查看详细信息视图时,它没有显示我的某些值。我理解为什么,因为我有一个强类型模型,但我需要一些帮助来解决这个问题 模型 控制器C# MVC+中的详细信息视图;连接表,c#,asp.net-mvc,C#,Asp.net Mvc,我需要一些关于这个问题的建议/帮助。我一直在网上搜寻,我有点困惑 基本上我有一个视图索引,它列出了我所有的电影。有一个详细视图,显示有关该影片的其他信息。我的问题是,当我查看详细信息视图时,它没有显示我的某些值。我理解为什么,因为我有一个强类型模型,但我需要一些帮助来解决这个问题 模型 控制器 public ActionResult Details(int id = 0) { Film film = db.Films.Find(id); if (
public ActionResult Details(int id = 0)
{
Film film = db.Films.Find(id);
if (film == null)
{
return HttpNotFound();
}
return View(film);
}
看法
@model SwapShop.Models.Film
@{
ViewBag.Title=“详细信息”;
}
细节
胶卷
@Html.DisplayNameFor(model=>model.Title):
@DisplayFor(model=>model.Title)
@DisplayNameFor(model=>model.Owner.Owner\u FirstName)
@DisplayFor(model=>model.Owner.Owner\u FirstName)
将显示正确的记录,但owner_FirstName的值为空。是否需要加入控制器中的所有者表?如果使用实体框架,则在获取影片时可能无法获取导航属性,如
owners
。试试这个怎么样:
Film film = db.Films.Include(f=> f.owners).SingleOrDefault(f => f.FilmId == id);
在此行上放置断点:
返回视图(胶片)
并检查胶片的值。如果film.owners.Owner\u FirstName
为空,则需要查看db.Films.Find()
方法是否正确地在数据库中查询owners
属性。感谢您这么快返回。将值写入屏幕的最佳方式是什么?我设法检查了胶片对象,当我查看胶片标题时,它会正确地显示在控制台上。当我看电影时,我得到一个空引用的例外。你是一个明星。非常感谢您在这方面花时间。我原以为这与那句话有关,但却在苦苦思索该写些什么。再次感谢。
@model SwapShop.Models.Film
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<fieldset>
<legend>Film</legend>
<div class="display-label">
@Html.DisplayNameFor(model => model.Title):
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Title)
</div>
<div class="display-label">
@Html.DisplayNameFor(model => model.owners.Owner_FirstName)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.owners.Owner_FirstName)
</div>
</fieldset>
Film film = db.Films.Include(f=> f.owners).SingleOrDefault(f => f.FilmId == id);