我一直在努力解决这个问题几个小时,似乎无法弄清楚发生了什么或与之相关的任何相关网站。我所要做的就是同时使用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函数。
任何帮助都将不胜感激。
答案 0 :(得分:7)
听起来很荒谬,请将脚本标记更改为:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
language="javascript"></script>
注意我正在使用关闭脚本标记(这很关键)。
答案 1 :(得分:0)
该元素具有服务器端标识form1
,您无法使用此ID客户端。
您必须使用服务器端属性this.form1.ClientID
来获取客户端(类似ctrl00_form1
)。
或者,如果您不使用访问表单服务器端,则可以删除runat="server"
。
修改强>
我可能误解了您的问题:如果此代码抛出异常,您可能必须以这种方式编写脚本标记:<script type="..." src="..."></script>
(非自我关闭但为空)。