1

我的控制器:

public ViewResult Index()
    {
        return View("normal", PostalAddressRepo.All() as IEnumerable<PostalAddress>);
    }

正常的.cshtml

@model IEnumerable<object>
@Html.DisplayForModel()

它不显示记录,而只是显示以下内容:

System.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2ASystem.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2A 

如果我使用下面的,它工作正常:

@model IEnumerable<object>
@foreach (object obj in Model)
{
@Html.DisplayFor(m => obj)
}

不确定我在 displayformodel() 上做错了什么。

有人可以建议吗?

4

2 回答 2

0

那应该是因为 DisplayForModel() 尝试为 PostalAddress 对象中的每个检索最佳属性类型。

所以,因为它没有找到一个最好的,我猜它会为对象返回一个字符串,显示

System.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2ASystem.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2A

如果可以,将视图强输入到返回模型中:

@model IEnumerable<PostalAddress>
@Html.DisplayForModel()
于 2013-08-07T10:59:17.853 回答
0

在将模型传递给视图之前尝试急切地加载模型:

public ViewResult Index()
{
    var model = PostalAddressRepo.All() as IEnumerable<PostalAddress>;
    return View("normal", model.ToList());
}

还要使您的视图强类型化为与您的模型相同的类型:

@model IEnumerable<PostalAddress>
@Html.DisplayForModel()
于 2013-08-07T10:58:29.803 回答