2012-04-18 76 views
1

我来自webforms,我试图在MVC中复制一个简单的数据模型。我是.NET和C#新手,所以如果这是一个非常简单的问题,请原谅。我有“信件”,每个信件都有一个类别和多个收件人。 EF似乎在SQL后端上正确创建了我的数据模型,但我无法访问视图中的类别。这里是我的模型:MVC3 EF代码第一个“外键”数据

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> 

回答

3

你需要使它虚拟的,像你一样收件人。

public virtual Category Category { get; set; } 

标记的属性作为“虚拟”通知EF创建其代理时重写属性。

+0

完美,工作。延迟3分钟后,我会立即将其标记为正确。 – Barnes 2012-04-18 12:56:21