我有一个最初没有使用ajax的项目。现在我想启用页面ajax。我已经做的是安装ajaxToolkit并将web.config内容替换为启用了ajax的网站中的另一个内容。我添加了脚本管理器:
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" />
.cs文件中的方法如下所示
[WebMethod]
public static string[] CheckRating(string[] details)
{
string[] result = new string[] { "AAAAAAAAAAA", "" };
return result;
}
我的java脚本函数是:
function someName() {
var details = new Array();
details[0] = $("#HiddenFieldUsername").val();
details[1] = "5310005003117";
PageMethods.CheckRating(details, ss1, ss2);
}
function ss1(result, userContext, methodName)
{
$("#user_rating").show();
$("#user_rating_text").html("Error User ratinh");
alert("Sorry");
}
function ss2(error, userContext, methodName) {
$("#user_rating").show();
$("#user_rating_text").html("Error User ratinh");
alert("Sorry");
}
问题在于它何时到达:PageMethods.CheckRating(details,ss1,ss2); 什么都没发生。 ss1或ss2中的代码都没有执行... java脚本只是停止工作。
答案 0 :(得分:1)
很奇怪,以下webform对我来说非常合适:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Services" %>
<script type="text/C#" runat="server">
[WebMethod]
public static string[] CheckRating(string[] details)
{
string[] result = new string[] { "AAAAAAAAAAA", "" };
return result;
}
</script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" />
</form>
<script type="text/javascript">
var details = new Array();
details[0] = 'foo';
details[1] = 'bar';
PageMethods.CheckRating(details, ss1, ss2);
function ss1(result, userContext, methodName) {
alert(result[0]);
}
function ss2(error, userContext, methodName) {
alert("Error");
}
</script>
</body>
</html>
也许您可以使用一个javascript调试工具(如FireBug)来确切了解封面下发生的情况以及正在发送的实际AJAX请求以及响应。