【发布时间】:2011-09-27 09:21:48
【问题描述】:
我有一个Contact 对象列表,我只想要其中的一个属性子集。所以我使用 LINQ 投影来创建一个匿名列表,并将它传递给一个局部视图。但是当我在局部视图中使用该列表时,编译器说它没有这些属性。我尝试了以下最简单的情况,但我仍然没有机会在局部视图中使用匿名对象或列表。
var model = new { FirstName = "Saeed", LastName = "Neamati" };
return PartialView(model);
在局部视图中,我有:
<h1>Your name is @Model.FirstName @Model.LastName<h1>
但它说@Model 没有 FirstName 和 LastName 属性。这里有什么问题?当我使用@Model 时,这个字符串会在浏览器中呈现:
{ Title = "Saeed" }
【问题讨论】:
-
您遇到了匿名类型经常哀叹和讨论的主题,它们的属性声明为内部,这导致了您的场景。此链接提供了一个可行的解决方案。 stackoverflow.com/questions/5120317/…。但是,您最好有一个具体的类型用于您的视图模型,但这是一个选项。
-
这里几乎有同样的问题。答案与 Khepri stackoverflow.com/questions/4862122/…
-
使用
@model dynamic
标签: asp.net-mvc asp.net-mvc-3 viewmodel anonymous-types partialviews