2010-08-23 68 views
4

我將表單網站轉換爲應用程序,並且所有內容一直運行良好,直到現在。我不斷得到綠色的波浪線和元素'X'不是已知元素的錯誤。這是幾乎每一個元素,GridView的,標籤,更新面板,超鏈接字段,綁定字段,等等元素'X'不是已知的元素 - Web應用程序

我的web.config中包含

<pages theme="basic"> 
     <controls> 
      <add tagPrefix="ajax" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/> 
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </controls> 
    </pages> 

所以AJAX和ASP是可行的前綴。非常奇怪的是,它只發生在幾個用戶控件上,所有其他用戶控件都很好,錯誤從不出現。我試過重啓,一切都沒有解決。所有的主頁,網頁和大約90%的用戶控件都很好,只有少數用戶控件和超級煩人!

+0

向我們展示aspx頁面的頂部。 – egrunin 2010-08-23 18:56:42

+0

您使用的是哪個版本的Visual Studio,以及您的應用程序定位的.NET Framework版本是什麼? – 2010-08-23 19:10:26

+0

<%@ Control Language =「C#」AutoEventWireup =「true」Inherits =「Controls_defaultActiveStatistics」Codebehind =「defaultActiveStatistics.ascx.cs」%> 和我正在使用VS2010目標4.0 – EvanGWatkins 2010-08-23 19:39:36

回答

6

如果web.config文件中的compilation元素具有targetFramework="4.0"屬性,我認爲不再需要對System.Web.Extensions程序集的引用。如果你看一下在%WINDIR%\Microsoft.NET\Framework\v4.0.30319\Config根級別的web.config文件,你會發現下面幾行已在web.config文件的<controls>部分:

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
<add tagPrefix="asp" namespace="System.Web.UI.WebControls.Expressions" assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 

的System.Web.Extensions程序組件在<compilation><assemblies>

<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

和以下<httpHandlers>也引用被添加以及

<add verb="*" path="*_AppService.axd" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" /> 
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False"/> 
<add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="False" /> 

此外,以下<httpModules>默認註冊

<add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 

總之,你的web.config文件可能不應該包含對System.Web.Extensions程序集的任何引用,因爲它已經被引用的幾乎每一個可以想象的方式根級web.config文件。

其他參考:How to: Upgrade an ASP.NET Web Application to ASP.NET 4

1

我認爲這是Visual Studio中的一個錯誤。當我遇到這個時,我會嘗試在aspx頁面中選擇所有,剪切,然後將其粘貼回原來的位置。然後應該將控件添加到設計器文件中。如果這不起作用,請刪除設計器文件並嘗試再次將其轉換爲Web應用程序。祝你好運!我也想知道是否有更好的解決方案。

+1

我發現這個問題通常表示標記中的細微錯誤 - 例如在標記中設置屬性時,大寫字母true或false。在一個自定義控件上,罪魁禍首往往是人們濫用屬性,他們喜歡在他們的類/屬性上拋出屬性而不知道他們做了什麼。 – 2010-08-23 19:13:04

+0

我試圖複製出所有內容並重新粘貼,但沒有奏效。錯誤仍然存​​在。另外,當我使用智能感知,我沒有得到我的一些asp:控制.... – EvanGWatkins 2010-08-23 19:40:48

+0

我也刪除了設計器文件,並重新轉換網絡應用程序,它仍然顯示錯誤 – EvanGWatkins 2010-08-23 19:48:46

-3

我有完全相同的問題,我嘗試了一切,直到我刪除了我的鎖文件,然後問題消失

1

我遇到了同樣的錯誤,它變成是區分大小寫在第一行的控制聲明中使用CodeBehind屬性問題。

以下是給這個問題

<%@ Control Language="C#" AutoEventWireup="true" Inherits="ContactListControl" Codebehind="ContactListControl.ascx.cs" %> 

主要是它更改爲 - 解決問題

<%@ Control Language="C#" AutoEventWireup="true" Inherits="ContactListControl" CodeBehind="ContactListControl.ascx.cs" %> 

我建議使用Visual Studio自動格式化功能(快捷鍵Ctrl + K + d),它取關心這種大小寫/格式問題。

相關問題