"System.Web.UI.ScriptManager"是定义在一个未被引用的程序集中。但它确实在该程序集中吗?"

6

我刚刚在我的网站上添加了Ajax,并使用了工具包脚本管理器,但是在构建时出现了错误。

类型 'System.Web.UI.ScriptManager' 是在未被引用的程序集中定义的。 您必须添加对程序集 'System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' 的引用。

这是我的整个web.config文件,我已经看到System>web>extensions被引用了,还有什么其他问题吗?

<system.web>
    <pages>
        <controls>
            <add tagPrefix="cc1" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
        </controls>
    </pages>
    <assemblies>
        <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.UI, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
</system.web>

这是我的aspx文件中的内容。
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>`

编辑

以下是解决方案:

<compilation debug="true" targetFramework="4.0">

缺少了targetFramework = "4.0"


你的项目类型是什么?网站还是Web应用程序? - abatishchev
网站上我想做的就是添加用于Ajax的脚本管理器。 - user222427
无论如何,如果没有任何强烈的理由来保留网站项目,我建议您将其转换为Web应用程序。 - abatishchev
2
找到答案了,唉,这真是太愚蠢了,就是太愚蠢了,花了8个小时在那上面。 - user222427
3
@Mike:请将您的回答发布并接受它。 - abatishchev
显示剩余7条评论
3个回答

11

对于所有像我一样阅读解决方案后仍然遇到这个问题的人,我可以强调必须添加引用System.Web.Extensions(如问题中所述)。

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

10

在编译标签中添加 targetFramework="4.0"。

<compilation debug="true" **targetFramework="4.0"**>

0

我们刚刚删除了带有警告/错误的文件,计划重新加载它们,但在删除后,我们重新发布时没有出现任何错误和问题,因此我们从未将它们放回去。只是一个建议,可以试试。


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