MVC +连接表中的详细信息视图

时间:2014-03-30 18:28:32

标签: c# asp.net-mvc

我需要一些关于这个问题的建议/帮助。我一直在网上打猎,我有点困惑。

基本上我有一个视图 - 索引列出了我的所有电影。有一个详细信息视图,显示有关该电影的其他信息。我遇到的问题是,当我查看详细信息视图时,它没有显示我的一些值。我理解为什么我有一个强类型模型,但我需要一些帮助来解决这个问题。

模型

    public class Film
    {
      public int FilmID { get; set; }

      [StringLength(60, MinimumLength = 1)]
      [Required]
      public string Title { get; set; }
      ..............

      public Owner owners { get; set; }
    }

控制器

    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 = "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>

正在显示正确的记录,但owner_FirstName的值为空。我是否需要加入控制器中的所有者表?

1 个答案:

答案 0 :(得分:1)

如果您正在使用实体框架,则在拍摄电影时可能无法获取owners等导航属性。尝试这个怎么样:

Film film = db.Films.Include(f=> f.owners).SingleOrDefault(f => f.FilmId == id);