IIS 7 中的 ASP.NET AJAX Control Toolkit 控件扩展程序不会触发 JavaScript 事件

发布于 2024-08-25 00:13:06 字数 1910 浏览 5 评论 0原文

[编辑:在新机器上进行交叉测试并进行一些额外的研究后,这似乎是在 IIS 7 中运行的问题。我在网上阅读了许多有关问题的描述,但我看到的少数解决方案都没有意义,也没有(惊喜)有效。]

大家好,我是 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>

当我运行页面时,我看到我的按钮,但单击它只会执行 POST。

我的项目的 bin 目录包含 System.Web.Ajax.dll 和 AjaxControlToolkit.dll。我尝试过的非扩展器(例如编辑器控件)没有任何问题。 我在使用 ModalPopupExtender、DropDownExtender 和 CalendarExtender 时遇到了类似的结果。

在检查为该页面生成的 HTML 时,插入了很多 JavaScript,因此显然正在发生某些事情(在此处粘贴相当大)。

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

有什么想法吗?

[Edited: After cross-testing on a fresh machine and some additional research, this appears to be an issue running in IIS 7. I've read many accounts of problems online but none of the few resolutions I've seen made sense nor (surprise) worked.]

Hi folks, I'm new to ASP.NET AJAX and am having what I assume is a configuration issue.

I've created a new ASP.NET web application and added the ASP.NET AJAX Control Toolkit to my Visual Studio (2008) toolbox.

I have no problem dragging and dropping controls onto new pages and passing validation/debugging. My problem is that none of the control extenders are firing any events when I run through any of the most basic tutorials.

For instance, I'm following the second half of this tutorial: http://www.asp.net/%28S%28ywiyuluxr3qb2dfva1z5lgeg%29%29/learn/Ajax-Control-Toolkit/tutorial-48-cs.aspx

My aspx looks like this:

<%@ 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>

When I run the page, I see my button but clicking it only does a POST.

The bin directory off my project contains System.Web.Ajax.dll and AjaxControlToolkit.dll. I have no problems with the non-extenders I've tried (such as the Editor control).
I'm experiencing similar results with the ModalPopupExtender, DropDownExtender, and CalendarExtender.

On inspecting the HTML produced for that page there is a lot of JavaScript inserted, so clearly something's happening (it's rather large to paste here).

This is a brand new sandbox project so I don't believe I have any legacy config issues.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一瞬间的火花 2024-09-01 00:13:06

想通了。在 IE(而不是 FireFox)中加载页面可以清楚地看出页面上存在 JavaScript 错误。

我收到的错误消息是:

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

我的解决方案是将页面中的 ScriptManager 从 更改为 。 ASP.NET 中的基本脚本管理器无法处理这些扩展。

Figured it out. Loading the page in IE (instead of FireFox) made it pretty clear there were JavaScript errors on the page.

The error message I received was:

Microsoft JScript runtime error: AjaxControlToolkit requires ASP.NET Ajax 4.0 scripts. Ensure the correct version of the scripts are referenced. If you are using an ASP.NET ScriptManager, switch to the AjaxScriptManager in System.Web.Ajax.dll, or use the ToolkitScriptManager in AjaxControlToolkit.dll.

My solution was to change the ScriptManager in the page from <asp:ScriptManager> to <asp:ToolkitScriptManager>. The base script manager in ASP.NET wasn't able to handle these extensions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文