我的啤酒模型有一個啤酒對象,但當我處於視圖中時,我無法訪問啤酒廠的屬性。智能感知似乎認爲我可以訪問brewery屬性,但DisplayFor方法不會打印任何內容。訪問ASP.NET MVC 3中傳遞給Razor視圖的模型內的對象
@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>
下面是啤酒類:
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; }
}
}
愚蠢的問題,但你確定釀酒廠屬性實際上是在啤酒中設置?這是我看不到它的唯一原因。 –
你說得對。當我在啤酒控制器的細節方法中初始化啤酒後查看汽車時,只有字符串字段被初始化。該聲明顯示「Beer beer = context.Beers.find(id);」我想我需要一些其他的LINQ代碼來包含其他屬性。我不確定在哪裏以及如何使用Adam建議的LINQ代碼。 – travis1097