私のビールモデルには醸造物オブジェクトがありますが、私がビューにいるときにビール醸造所のプロパティにアクセスすることはできません。 Intellisenseは私が醸造所のプロパティにアクセスできると思っていますが、DisplayForメソッドは何も印刷しません。ASP.NET MVC 3のレイザービューに渡されたモデル内のオブジェクトへのアクセス
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; }
}
...と、ここでビールのクラスである:ここで
@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.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; }
}
}
愚かな質問ですが、実際にビールのプロパティがビールに設定されていますか?それが私がそれを表示しないために見ることができる唯一の理由です。 –
あなたは正しいです。 beerscontrollerの詳細メソッドでビールが初期化された後に自動車を見ると、文字列フィールドだけが初期化されます。この声明は「Beer beer = context.Beers.find(id);」と読みます。私は他のプロパティを含めるためにいくつかの他のLINQコードが必要だと思います。 Adamが提案しているLINQコードをどこでどのように使用するかはわかりません。 – travis1097