类型或命名空间名称“UpdatePanel”在命名空间“System.Web.UI”中不存在。

15

我正在处理另一位开发者创建的一个面向ASP.NET 3.5的网站。我尝试在一段代码周围添加一个UpdatePanel,但每次尝试这样做时,我都会收到标题中发布的错误。我已经尝试使用ajaxcontroltoolkit dll,但没有成功。

以下是web.config文件中的引用:

<compilation debug="true">
      <assemblies>
        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.Services.Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Services.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>

在 Visual Studio 2010 的工具箱中将 updatepanel 拖到页面上时,会添加以下注册语句:

<%@ Register assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.UI" tagprefix="asp" %>

我错过了什么?


请检查您的 Web.config 文件是否存在错误。 - Eduardo Cuomo
3个回答

34

原来这是由于Visual Studio无法识别System.Web.Extensions引用而导致的问题。为了解决此问题,我按照以下步骤操作:

  1. 将目标框架更改为先前的版本(对我来说是2.0)
  2. 完成上一步操作后,再将目标框架更改回原始版本(对我来说是3.5)

Visual Studio 会确保您的 webconfig 具有所有必要的设置,并且您可以通过打开对象资源管理器并确保 System.Web.Extensions 出现在“查看容器”列表中来检查是否成功。


难以置信,这个解决方案居然奏效了!我遇到了完全相同的问题,将我的项目框架版本从4改回2,然后再改回4,编译错误就消失了! - real_yggdrasil
1
当我从Framework 4.0切换到Framework 4.5.1时,我注意到对System.Web.Extensions的引用被删除了。重新添加引用后,问题消失了。 - rsbarro
1
我从4.6.1升级到4,然后再回到4.6.1。问题已解决!感谢@Kyle。 - joehanna

19
请添加参考:System.Web.Extensions

这是最简单的解决方案。当我将我的项目从 .net 4.7.2 移动到另一台机器并使用 .net 4.8 时,出现了这个问题。添加对 System.Web.Extensions 的引用解决了这个问题。 - Shomaail
这对我在使用Visual Studio 2022、.NET 4.8时有效 - 谢谢! - Lazlow
它绝对有效!我今天再次谷歌这个完全相同的问题,遇到了这个问题和你的答案 - 发现我已经感谢过你了。再次感谢,来自健忘的我。 - Lazlow

5

你可以从工具箱中添加UpdatePanel组件来解决这个问题。构建后,删除控件。


适用于您已复制设计代码并粘贴到新项目的情况。只需添加一个虚拟的更新面板并将其移除即可。 - Muhammedh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接