代码之家  ›  专栏  ›  技术社区  ›  Stefan Mohr

在IIS 7中,没有为ASP.NET AJAX控件工具包控件扩展程序触发JavaScript事件

  •  1
  • Stefan Mohr  · 技术社区  · 14 年前

    [编辑:在新机器上交叉测试和一些额外的研究之后,这似乎是在IIS7中运行的一个问题。我在网上读过很多关于问题的报道,但我所看到的几个解决方案中没有一个是有意义的,也没有一个(惊喜)奏效。]

    大家好,我是ASP.NET AJAX的新手,我认为这是一个配置问题。

    我创建了一个新的ASP.NET Web应用程序,并将ASP.NET Ajax控件工具包添加到我的Visual Studio(2008)工具箱中。

    我可以将控件拖放到新页面并通过验证/调试。我的问题是,当我运行任何最基本的教程时,没有任何控制扩展程序触发任何事件。

    例如,我遵循本教程的后半部分: http://www.asp.net/%28S%28ywiyuluxr3qb2dfva1z5lgeg%29%29/learn/Ajax-Control-Toolkit/tutorial-48-cs.aspx

    我的ASPX如下:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ShowConfirmButton.aspx.cs" Inherits="ASP.NET_AJAX_Sandbox.ShowConfirmButton" %>
    <%@ 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:ScriptManager ID="ScriptManager1" runat="server" />
        <div>
            <asp:Button ID="Button1" runat="server" Text="Button" />
            <asp:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" ConfirmText="Really?" Enabled="True" TargetControlID="Button1">
            </asp:ConfirmButtonExtender>
        </div>
        </form>
    </body>
    </html>
    

    当我运行页面时,我会看到我的按钮,但单击它只会显示一个帖子。

    我项目的bin目录包含system.web.ajax.dll和ajaxcontroltoolkit.dll。我尝试过的非扩展程序(如编辑器控件)没有问题。 我在使用ModalPopupExtender、DropDownExtender和CalendarExtender时遇到了类似的结果。

    在检查为该页面生成的HTML时,插入了大量的javascript,所以很明显发生了一些事情(在这里粘贴相当大)。

    这是一个全新的沙盒项目,所以我不认为我有任何遗留的配置问题。

    有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Stefan Mohr    14 年前

    明白了。在IE(而不是火狐)中加载页面,很明显页面上有javascript错误。

    我收到的错误消息是:

    Microsoft JScript运行时错误:AjaxControlToolkit需要ASP.NET Ajax 4.0脚本。确保引用了正确版本的脚本。如果使用的是ASP.NET脚本管理器,请切换到System.Web.Ajax.dll中的Ajaxscriptmanager,或使用AjaxControlToolkit.dll中的Toolkit脚本管理器。

    我的解决方案是将页面中的脚本管理器从 <asp:ScriptManager> <asp:ToolkitScriptManager> . ASP.NET中的基本脚本管理器无法处理这些扩展。