如何使用jquery wth out page refresh调用服务器端函数?
答案 0 :(得分:5)
使用AJAX:
$.get('somepage.aspx', {foo: 'bar'}, function(data){
alert('the page returned this: '+data);
});
然后设置somepage.aspx来执行该函数并返回数据(如果需要)。
有关jQuery AJAX的更多信息,请参阅:http://docs.jquery.com/Ajax
答案 1 :(得分:2)
以下是使用jQuery和Microsoft Ajax调用自定义ASP.NET PageMethod的方法:
<%@ Page Language="C#" AutoEventWireup="true" %>
<!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>Untitled Page</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="http://www.json.org/json2.js"></script>
</head>
<script runat="server">
/// <summary>
/// A custom PageMethod that will echo back the argument
/// </summary>
/// <param name="argument">some arbitrary string</param>
/// <returns></returns>
[System.Web.Services.WebMethod]
public static string MyPageMethod(string argument)
{
return "hello " + argument;
}
</script>
<script type="text/javascript">
function callPageMthodWithMicrosoftAjax(argument) {
PageMethods.MyPageMethod(argument, function(result) {
document.getElementById('result').innerHTML = result;
}, function(error) {
alert(error.get_message());
});
}
function callPageMthodWithjQueryAjax(argument) {
jQuery.ajax({
url: '/default.aspx/MyPageMethod',
type: 'post',
contentType: 'application/json',
data: JSON.stringify({ argument: argument }),
dataType: 'json',
processData: false,
success: function(data, textStatus) {
jQuery('#result').html(data.d);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
var jsonError = JSON.parse(XMLHttpRequest.responseText);
alert(jsonError.Message);
}
});
}
</script>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="true" />
<a href="#" onclick="callPageMthodWithMicrosoftAjax('Microsoft Ajax')">call PageMethod with Microsoft Ajax</a>
<br />
<a href="#" onclick="callPageMthodWithjQueryAjax('jQuery')">call PageMethod with jQuery</a>
<div id="result"></div>
</form>
</body>
</html>
答案 2 :(得分:1)
如果您需要调用仅服务器方法,请在服务器端使用WebMethod,在客户端使用ajax。 阅读this我很有用。
再见
答案 3 :(得分:1)
我看到你正在使用asp.net,所以你有几个选择:
答案 4 :(得分:0)
使用Jquery .ajax()方法。
$.ajax({
url: "test.aspx/method",
context: document.body,
success: function(){
$(this).addClass("done");
}
});