在模型asp.net mvc5中显示外键属性的值

时间:2015-08-28 08:03:49

标签: c# asp.net razor

我在我的应用程序中有一个社会模型,它使用标准的ApplicationUser对象作为它的“所有者”,如下所示:

public class Society
{

    public int id { get; set; }

    [DataType(DataType.Text)]
    [DisplayName("Society Name")]
    [Required(ErrorMessage = "Society Name is required")]
    [StringLength(50, ErrorMessage = "Maximum of 100 characters")]
    public String societyName { get; set; }

    public String owner { get; set; }

    [DataType(DataType.DateTime)]
    public DateTime dateCreated { get; set; }

    [DataType(DataType.DateTime)]
    public DateTime dateLastUpdated { get; set; }

    [DataType(DataType.Text)]
    [DisplayName("Where is your Society based?")]
    [Required(ErrorMessage = "Location is required")]
    [StringLength(50, ErrorMessage = "Maximum of 100 characters")]
    public String location { get; set; }

    public virtual ApplicationUser User { get; set; }


    public int countMembers() {
       // to come...
    }

    public void transferOwnershipTo() {
        // to come...
    }
}

我想在我的视图中显示标准ApplicationUser的电子邮件属性作为社团的所有者,如下所示:

<td>
   @Html.DisplayFor(modelItem => item.User.Email)
</td>

但是在我看来并没有显示任何内容。绝对是空的。然而,当我输入“项目点用户点电子邮件”时,智能感知正在捡起它。

如果我尝试

<td>
   @Html.DisplayFor(modelItem => item.owner)
</td>

...然后我得到了主人的指导(例如34dgh5-fegre3-235等)。

有人可以指出我需要什么来获取item.User.Email外键属性吗?

感谢。

...... 控制器在下面添加 ......

public class SocietiesController : Controller
{
    private ApplicationDbContext db = new ApplicationDbContext();

    // GET: Societies
    public ActionResult Index()
    {
        return View(db.Societies.ToList());
    }

1 个答案:

答案 0 :(得分:0)

你能解决这个问题吗?我有一个非常类似的问题,但我的控制器配置有点不同,因为我的问题是详细信息页面...但是,我在我的索引页面上工作。尝试以下方法:

    public ActionResult Index()
    {
         var societylist = db.Societies.Include(x => x.TABLENAME);
         return View(societylist.ToList());
    }

其中TABLENAME是您的表格,电子邮件地址数据位于