javascriptの[WebMethod]で指定されたメソッドを別のページに呼び出すことはできますか?私。 。これは、限り、あなたは正しいURLを指定して、可能である別のページのjavascriptからページのwebmethodを呼び出す
[WebMethod]
public string PageOneMethodOne()
{
return "hello world";
}
javascriptの[WebMethod]で指定されたメソッドを別のページに呼び出すことはできますか?私。 。これは、限り、あなたは正しいURLを指定して、可能である別のページのjavascriptからページのwebmethodを呼び出す
[WebMethod]
public string PageOneMethodOne()
{
return "hello world";
}
を含む
$.ajax(
{
type: "POST",
url: "pageone.aspx/PageOneMethodOne",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg)
{
//something
}
}
);
PageOne.aspx.cs:PageTwo.aspxと呼ばれるページのスクリプトから、次のjQueryのAJAX呼び出しを使用して別のコントロール、SampleForm.aspxにWebMethod属性に入力ボックスの内容を送信しますechoSumbitボタンをクリック
<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>
:
<form id="form1" runat="server">
<div>
<div id="messages">
</div>
<input type="text" id="echo" /><input id="echoSubmit" value="Echo!" type="button"/>
</div>
、それはJavascriptを対応だ:以下のフォームをチェックしてください。ここではそのフォームのコードビハインドがある:
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
コードビハインドの代わりに.asmxを使用すると、非静的メソッドを呼び出すことができます - http://stackoverflow.com/questions/1360253/call-non-static-method-in-server-sideaspx-cs-from -client-side-use-javascript – njebert
私はあなたが正しいURLを指定している限り、あなたはできると思います。 –