1

我可以调用一个在 asp.net 网页中的方法(在 aspx.cs 页面中)而不在页面加载中检查它吗?

例如'../test2.aspx/TestMethod

此链接中,我注意到我们可以在 jquery ajax 方法中提供 url:“PageName.aspx/MethodName”。我已经尝试过了,但从来没有为我工作过。

4

2 回答 2

3

页面方法是 ASP.Net 应用程序中的一种新机制,其中服务器代码绑定到 Asp.Net 页面

要启用页面方法,我们需要将 ScriptManager 控件拖到页面并将
EnablePageMethods 标记为“True”。

    <asp:ScriptManager ID="ScriptManager1" runat="server"   
         EnablePageMethods="True">
    </asp:ScriptManager>

转到页面的代码隐藏文件并添加一个静态方法

    [WebMethod]
    public static string HelloWorld(string name)
    {
       return string.Format("Hi {0}",name);
    }

在javascript函数中我们可以使用PageMethods对象来调用页面的WebMethod。

    <script type="text/javascript">
    function GreetingsFromServer() {
       var name = 'Jalpesh';
       PageMethods.HelloWorld(name,OnSuccess, OnError);
       return false;
   }
   function OnSuccess(response) {
       alert(response);
   }
   function OnError(error) {
       alert(error);
   }
   </script>
于 2013-04-18T08:26:05.787 回答
2

您可以使用 ajax 调用另一个页面 webmethod

$(document).ready(function() {
// Add the page method call as an onclick handler for the div.
  $("#Result").click(function() {
  $.ajax({
         type: "POST",
         url: "Default.aspx/GetDate",
         data: "{}",
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function(msg) {
         // Replace the div's content with the page method's return.
         $("#Result").text(msg.d);
        }
    });
  });
});
于 2013-04-18T10:47:26.783 回答