1

我已经为此苦苦挣扎了几个小时,似乎无法弄清楚发生了什么或与此相关的任何相关网站。我要做的就是同时使用 Ajax Control Toolkit 和 JQuery。

以下是重新创建我的问题所需的唯一代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestForm.aspx.cs" Inherits="TestWebsite.TestForm" %>

<!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>
        <script type="text/javascript" 
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
        language="javascript" /> 
</head>
<body>
    <form id="form1" runat="server">
    <ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </ajax:ToolkitScriptManager>
    <div>

    </div>
    </form>
</body>
</html>

万一这很重要,我正在使用 Visual Studio 2010 专业版。我的 asp.net 网站的目标是 .NET 4.0 框架。我正在使用版本为 4.1.60501.0 的 AjaxControlToolkit.dll。Jquery 是 1.7.2 分钟版本。

如果我注释掉 jquery 脚本行或 ToolkitScriptManager,我不会收到任何 javascript 错误。如果它们都包括在内,我会收到错误消息

“Microsoft JScript 运行时错误:Sys.ArgumentException:找不到具有 id 'form1' 的元素。参数名称:elementOrElementId”

Stacktrace 给了我 DomElement$resolveElement(elementOrElementId, containerElement) javascript 函数作为罪魁祸首。

任何帮助,将不胜感激。

4

2 回答 2

7

听起来很可笑,请将您的脚本标签更改为:

<script type="text/javascript" 
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
        language="javascript"></script> 

请注意我正在使用结束脚本标记(这很重要)。

于 2012-06-22T19:50:10.030 回答
0

该元素具有服务器端 ID form1,您不能在客户端使用此 ID。您必须使用服务器端属性this.form1.ClientID来获取客户端它(类似于ctrl00_form1)。runat="server"或者,如果您不用于访问表单服务器端,则可以删除。

编辑:

我可能误解了您的问题:如果此代码引发异常,您可能必须以这种方式编写脚本标记:(<script type="..." src="..."></script>非自关闭但为空)。

于 2012-06-22T19:32:30.617 回答