是否可以在另一个页面上从
javascript调用[WebMethod]归因的方法?即在名为PageTwo.aspx的页面上使用以下jquery ajax从脚本调用:
- $.ajax(
- {
- type: "POST",url: "pageone.aspx/PageOneMethodOne",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg)
- {
- //something
- }
- }
- );
PageOne.aspx.cs包含
- [WebMethod]
- public string PageOneMethodOne()
- {
- return "hello world";
- }
解决方法
只要您指定正确的URL,这是可能的.请查看以下表格:
- <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,success: function (msg) {
- $("#messages").append(msg.d);
- }
- });
- });
- });
- </script>
单击echoSumbit按钮将输入框的内容发送到另一个控件SampleForm.aspx上的WebMethod.以下是该表单的代码隐藏:
- public partial class SampleForm : System.Web.UI.Page
- {
- [WebMethod]
- public static string SendMessage(string message)
- {
- return message;
- }
- }
Chat.aspx中的单击处理程序将输入值发送到SampleForm.aspx.cs,后者返回发送的值.返回的值将附加到.ajax调用的success方法中Chat.aspx中的div.