我的控制器:
public ViewResult Index()
{
return View("normal", PostalAddressRepo.All() as IEnumerable<PostalAddress>);
}
normal.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()做错了什么。
有人可以建议吗?答案 0 :(得分:0)
在将模型传递给视图之前,请先尝试加载模型:
public ViewResult Index()
{
var model = PostalAddressRepo.All() as IEnumerable<PostalAddress>;
return View("normal", model.ToList());
}
同时使您的视图强类型与模型类型相同:
@model IEnumerable<PostalAddress>
@Html.DisplayForModel()
答案 1 :(得分:0)
这应该是因为DisplayForModel()尝试为PostalAddress对象中的每个属性类型检索最佳属性类型。
所以,因为它找不到最好的一个,我猜它会返回一个对象的字符串,显示
System.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2ASystem.Data.Entity.DynamicProxies.ContactMechanism_4E4BC83827D1FE8C7CD34454310EF12DB90E894128F3024AEB8C7E9BF8843D2A
如果可以,请强烈键入返回模型的视图:
@model IEnumerable<PostalAddress>
@Html.DisplayForModel()