您好我正在尝试在 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>
在通过名为 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 工具包属性。我该如何纠正这个?