【问题标题】:Ajax control toolkit asssembly reference errorAjax 控制工具包组件引用错误
【发布时间】:2012-11-18 10:12:47
【问题描述】:

您好,我正在尝试在 asp.net 项目中安装 ajax 控件工具包。我使用 Nugget 将库下载到项目中并将每个控件加载到工具箱中,但是当我尝试使用我得到的任何控件时这个错误:

Error   3   The type 'System.Web.UI.Design.ExtenderControlDesigner' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.   D:\Projects IDE\Visual Studio\C# Book\ASP.NET\WebSite12\Default.aspx    14  

在阅读了这个错误后,我在配置文件中添加了这个:

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

我知道这应该指向我需要的程序集,但它不起作用,也许有人可以告诉我首先应该从哪里得到这个字符串我在 asp.net 中看到了用于 provideri 的类似字符串在 type 属性上,我不明白我应该从哪里得到它们,尤其是 PublicKeyToken。

这是我的全部代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:AlwaysVisibleControlDesigner ID="AlwaysVisible" runat="server">

        </asp:AlwaysVisibleControlDesigner>
    </form>
</body>
</html>

这是 web.config 文件的内容:

    <?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
      <compilation debug="false" targetFramework="4.0" >
          <assemblies>
              <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
          </assemblies>
      </compilation>
    <pages>
      <controls>
        <add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
      </controls>
    </pages>
  </system.web>
</configuration>

在通过名为 packages.config 的 nugget 安装 ajax 控制工具包后,还添加了第二个配置文件:

    <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="AjaxControlToolkit" version="4.1.60919" targetFramework="net40" />
</packages>

我在这里做错了什么?为什么会出现这个错误?

编辑

事实证明,我必须添加一个额外的程序集才能使其工作:

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

现在我收到一条错误消息:

**Error 2   Type 'AjaxControlToolkit.AlwaysVisibleControlDesigner' does not have a public property named 'TargetControlID'. D:\Projects IDE\Visual Studio\C# Book\ASP.NET\WebSite12\Default.aspx    14  

**

这是代码:

<asp:AlwaysVisibleControlDesigner ID="AlwaysVisible"  runat="server" TargetControlID="Panel1" HorizontalOffset="10" HorizontalSide="Right" VerticalOffset="10" >
 </asp:AlwaysVisibleControlDesigner>

我很确定这应该是正确的 我从 Proffesional asp.net in C# and VB 一书中得到了这个例子

不知何故,我的代码没有获得 ajaxcontrol 工具包属性。我该如何纠正这个?

【问题讨论】:

    标签: asp.net ajaxcontroltoolkit


    【解决方案1】:

    我很久以前就遇到过这个问题。 我的代码的问题在于它使用了两个不同版本的 Ajax 控制工具包。 工具箱有最新的 Ajax 控件工具包(带有颜色选择器、编辑器控件的工具包),并且在项目中添加的引用是旧版本的。

    如何解决:

    1. 从工具箱中删除 Ajax Control 选项卡。
    2. 重新添加选项卡并右键单击选项卡,选择选择项目并浏览到 AjaxControltoolkit.dll 文件在您自己的项目中,然后按 OK(只需 以确保我们在两个地方使用相同的版本)
    3. 清理并重建解决方案,您就可以开始了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 2014-02-22
      • 2013-05-22
      • 1970-01-01
      相关资源
      最近更新 更多