【发布时间】:2010-08-20 21:29:24
【问题描述】:
我正在试用 ASP.NET MVC 3 Preview 1 中的 Razor ViewEngine,但在尝试使用 Any() 扩展方法时遇到了问题。
这是我用来在控制器中设置属性的代码:
ViewModel.Comparisons = DB.Comparisons.Where(c => c.UserID == this.UserID).ToArray();
这是我尝试使用 Any() 的视图中的代码:
@if (!View.Comparisons.Any()) {
<tr>
<td>You haven't not started any comparisons yet. @Html.Action("Start a new comparison?", "create", "compare")</td>
</tr>
}
我得到一个例外:
'System.Array' does not contain a definition for 'Any'
我尝试将 System.Linq 命名空间添加到 web.config 的 pages\namespaces 部分,并在视图顶部添加 @using System.Linq 行,但两者都没有任何区别。我需要做什么才能访问 LINQ 扩展方法?
更新:看起来它与它是动态对象的属性有关 - 如果我手动将其转换为 IList<T>,它就可以工作。
【问题讨论】:
-
呸,我刚刚看了你的更新......哦,好吧
-
我在使用动态“视图”时遇到了问题。在某些情况下,我恢复到 ViewData[]。
标签: linq .net-4.0 extension-methods razor asp.net-mvc-3