Ajax Control Toolkit和Jquery在ASP.NET 4.0中没有相关

时间:2012-06-22 19:25:26

标签: asp.net ajax visual-studio-2010 .net-4.0 ajaxcontroltoolkit

我一直在努力解决这个问题几个小时,似乎无法弄清楚发生了什么或与之相关的任何相关网站。我所要做的就是同时使用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函数。

任何帮助都将不胜感激。

2 个答案:

答案 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>(非自我关闭但为空)。