是否有可能在不同的頁面上調用javascript中的[WebMethod]屬性?即利用腳本以下的jquery ajax調用名爲PageTwo.aspx頁:含在不同的頁面上從javascript調用頁面的webmethod
[WebMethod]
public string PageOneMethodOne()
{
return "hello world";
}
是否有可能在不同的頁面上調用javascript中的[WebMethod]屬性?即利用腳本以下的jquery ajax調用名爲PageTwo.aspx頁:含在不同的頁面上從javascript調用頁面的webmethod
[WebMethod]
public string PageOneMethodOne()
{
return "hello world";
}
這是可能的,只要你指定正確的URL
$.ajax(
{
type: "POST",
url: "pageone.aspx/PageOneMethodOne",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg)
{
//something
}
}
);
PageOne.aspx.cs。看看下面的表格:
<form id="form1" runat="server">
<div>
<div id="messages">
</div>
<input type="text" id="echo" /><input id="echoSubmit" value="Echo!" type="button"/>
</div>
和它相應的JavaScript:
<script type="text/javascript">
$(function() {
$('#echoSubmit').click(function() {
var mes = $('#echo').val();
var jsonText = JSON.stringify({ message: mes });
$.ajax({
type: "POST",
url: "SampleForm.aspx/SendMessage",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#messages").append(msg.d);
}
});
});
});
</script>
點擊echoSumbit按鈕將輸入框的內容發送到一個WebMethod上的另一個控件,SampleForm.aspx。下面是形式的代碼隱藏:
public partial class SampleForm : System.Web.UI.Page
{
[WebMethod]
public static string SendMessage(string message)
{
return message;
}
}
在Chat.aspx的點擊處理程序發送輸入值SampleForm.aspx.cs,它返回所發送的值。返回的值將附加到.ajax調用的成功方法中的Chat.aspx中的div上。
謝謝@njebert,你能告訴我,頁面上的方法必須是靜態的嗎? – hofnarwillie 2012-04-12 18:03:34
您可以使用.asmx代替代碼隱藏來調用非靜態方法 - http://stackoverflow.com/questions/1360253/call-non-static-method-in-server-sideaspx-cs-from -client側使用JavaScript的 – njebert 2012-04-12 18:50:04
我想\你可以只要你指定正確的url到它 – 2012-04-12 16:52:40