1

我来自网络表单,我正在尝试在 MVC 中复制一个简单的数据模型。我是 .NET 和 C# 新手,如果这是一个非常简单的问题,请原谅。我有“信件”,每个信件都有一个类别和多个收件人。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

你需要把它变成虚拟的,就像你对 Recipient 所做的那样。

public virtual Category Category { get; set; }

将属性标记为“虚拟”会通知 EF 在创建其代理时覆盖该属性。

于 2012-04-18T12:54:43.843 回答