详情视图在MVC +连接表

本文关键字:连接 MVC 视图 | 更新日期: 2023-09-27 17:54:59

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

基本上我有一个视图索引,其中列出了我所有的电影。有一个细节视图,显示关于电影的额外信息。问题是,当我查看详细信息视图时,它没有显示我的一些值。我明白为什么我有一个强类型的模型,但我需要一些帮助,如何解决这个问题。

模型
    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的值为空。我需要在控制器中加入Owner表吗?

详情视图在MVC +连接表

如果你使用实体框架,像owners这样的导航属性可能不会在你获取电影时被获取。不如试试这个:

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