1

私は Web フォームから来て、MVC で単純なデータ モデルを複製しようとしています。私は .NET と C# の初心者なので、これが本当に単純な質問だったらすみません。それぞれに1つのカテゴリと複数の受信者を持つ「レター」があります。EF は SQL バックエンドでデータ モデルを正しく作成しているようですが、ビューでカテゴリにアクセスできません。これが私のモデルです:

namespace FFLettersMVC.Models
{
    public class Letter
    {
        public int id {get; set;}
        public DateTime dateCreated { get; set; }
        public string letterTitle { get; set; }
        public DateTime dateMailed { get; set; }
        public string createdBy { get; set; }
        public string Type { get; set; }
        public int CategoryID { get; set; }
        public Category Category { get; set; }
        public virtual ICollection<Recipient> Recipient { get; set; }
    }
    public class Category
    {
        public int id { get; set; }
        public string name { get; set; }
    }
    public class Recipient
    {
        public int id { get; set; }
        public int letterID { get; set; }
        public string fname { get; set; }
        public string lname { get; set; }
        public string ssnTin { get; set; }
        public string email { get; set; }
        public Letter Letter { get; set; }
    }
}

詳細ページのコントローラ コード:

//
// GET: /Letter/Details/5

public ViewResult Details(int id)
{
    Letter letter = db.Letters.Find(id);
    return View(letter);
}

コードを表示 コメント プロパティにアクセスしようとしています:

<div class="display-label">Category</div>
<div class="display-field">
     @Html.DisplayFor(model => model.Category.name)
</div>
4

1 に答える 1

3

受信者と同じように、仮想化する必要があります。

public virtual Category Category { get; set; }

プロパティを「仮想」としてマークすると、プロキシを作成するときにプロパティをオーバーライドするようにEFに通知されます。

于 2012-04-18T12:54:43.843 に答える