這讓我感到困惑,我似乎無法讓Visual Studio 2010識別視圖代碼中的System.Linq擴展方法。 Intellisense不起作用,Visual Studio紅色強調了無法識別的擴展方法。Visual Studio在我的Asp.net MVC視圖中不顯示Linq擴展
這些都是web.config最相關的部分,我認爲它們與Visual Studio有關,以識別System.Linq擴展方法。註釋掉的行可能沒有註釋,但沒有區別。
<compilation debug="true" batch="true">
<assemblies>
<!--
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
-->
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<pages enableViewState="false">
<namespaces>
<add namespace="System.Collections.Generic"/>
<add namespace="System.Linq"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="MyApp.Objects"/>
<add namespace="MyApp.Web.General"/>
<add namespace="MyApp.Web.Helpers"/>
</namespaces>
</pages>
我有一個看起來像這樣的局部視圖定義。同樣的評論了兩行。取消註釋沒有什麼區別:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IList<ToolbarItem>>" %>
<%--
<%@ Assembly Name="System.Core" %>
<%@ Import Namespace="System.Linq" %>
--%>
<%
if (!this.Model.Any(ti => ti is ToolbarText && (ti as ToolbarText).MaximizeWidth))
{
this.Model.Add(new ToolbarText { MaximizeWidth = true });
}
%>
在這個特殊的局部視圖Any()
擴展方法無法識別,即使它在System.Core
大會的定義下System.Linq
命名空間。
我缺少哪些配置設置?似乎Visual Studio無法看到System.Core
程序集來枚舉它的System.Linq
命名空間中的擴展方法。
這是什麼類型?模型? – 2010-11-11 10:51:06
@傑克遜:開玩笑?您可以在<%@ Control%>定義中看到...它是'IList'類型的。 –
2010-11-11 10:53:06
不是開玩笑 - 不適用於ASP.Net-MVC/ASP.Net。 – 2010-11-11 10:57:08