我将一个表单网站转换为一个应用程序,到目前为止一切都运行良好。我不断收到绿色波浪线和元素“X”不是已知元素的错误。这几乎适用于每个元素,Gridview、标签、更新面板、超链接字段、绑定(bind)字段等...
我的 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% 的用户控件都很好,它只在少数用户控件上,非常烦人!
最佳答案
如果compilation
web.config 文件中的元素具有 targetFramework="4.0"
属性,我认为不再需要对 System.Web.Extensions 程序集的引用。如果您查看根级 web.config 文件 %WINDIR%\Microsoft.NET\Framework\v4.0.30319\Config
,您会注意到以下几行已位于 <controls>
中web.config 文件的部分:
<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"/>
<compilation><assemblies>
中还引用了 System.Web.Extensions 程序集。部分
<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
关于asp.net - 元素 'X' 不是已知元素 - Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550589/