Доступ к объектам внутри модели, переданным в Razor View в ASP.NET MVC 3 - PullRequest
0 голосов
/ 12 ноября 2011

У моей модели пива есть объект пивоварни, но я не могу получить доступ к свойствам пивоварни, когда нахожусь в представлении.Кажется, Intellisense думает, что я могу получить доступ к свойству пивоварни, но метод DisplayFor ничего не печатает.

@model BeerRecommender.Models.Beer

@{
ViewBag.Title = "Details";
}

<h2>@Html.DisplayFor(model => model.Name)</h2>

<fieldset>
<legend>Details</legend>

<div class="display-label">Style: @Html.DisplayFor(model => model.Style.Name)</div>
<div class="display-label">Brewery: @Html.DisplayFor(model => model.Brewery.Name)</div>

</fieldset>

Вот класс Beer:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using BeerRecommender.Models.ViewModels;

namespace BeerRecommender.Models
{
public class Beer
{
    [Key]
    public int BeerID { get; set; }

    public ICollection<City> Cities { get; set; }

    public ICollection<Tag> Tags { get; set; }

    public Style Style { get; set; }

    public string Name { get; set; }

    public Brewery Brewery { get; set; }
}

... и вотКласс пивоварни:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;

namespace BeerRecommender.Models
{
public class Brewery
{
    [Key]
    public int BreweryID { get; set; }

    public string Name { get; set; }

    public ICollection<Beer> Beers { get; set; }

    public City City { get; set; }
}
}

1 Ответ

2 голосов
/ 12 ноября 2011

Как вы загружаете класс пива?Если это из, скажем, структуры сущностей, вам нужно будет вызвать .Include (o => o.Brewery) в вашем коде загрузки, чтобы включить эту таблицу.Это предполагает, что EF 4.1 в противном случае вам нужно имя строки, например .Include ("Brewery"), если в 4.0

...