0

こんにちは、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>

これは必要なアセンブリを指す必要があることを理解していますが、機能しません。また、最初にこの文字列をどこから取得すべきか誰かが教えてくれるかもしれません。プロパティであり、特に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>

また、ナゲット経由で ajax コントロール ツールキットをインストールした後、packages.config という 2 番目の構成ファイルが追加されました。

    <?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>

私はこれが正しいはずだと確信しています.C#とVBのProffesional asp.netという本からこの例を得ました

どういうわけか私のコードは ajaxcontrol ツールキットのプロパティを取得していません.どうすればこれを修正できますか?

4

1 に答える 1

3

私はずっと前にこの問題に直面しました。私のコードの問題は、2 つの異なるバージョンの Ajax コントロール ツールキットを使用していたことです。ツールボックスには最新の Ajax コントロール ツールキット (カラー ピッカー、エディター コントロールを備えたもの) があり、プロジェクトに追加された参照は古いバージョンのものでした。

の解き方:

  1. ツールボックスから [Ajax コントロール] タブを削除します。
  2. タブを再度追加し、タブを右クリックし、[アイテムの選択] を選択 AjaxControltoolkit.dllして、独自のプロジェクト内のファイルを参照し、[OK] を押します (両方の場所で同じバージョンを使用していることを確認するため)。
  3. ソリューションをクリーンアップして再構築すると、準備完了です。
于 2012-11-19T13:35:33.187 に答える