3

HTML と .Net 3.5 を持つ単純な .Net 3.5 ページを作成しようとしていますWebMethod。ブラウザから自分を呼び出そうとするとWebMethod、ページが返され続けます。それを機能させる方法はありますか?

これは私のコードです:

<%@ Page Language="C#" Inherits="CFW.WebUI.Page" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    [System.Web.Services.WebMethod]
    public static string Test()
    {
        return "Hola!";
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml">
...
</html>

注: 私はAjax.Net を使用していません。クライアントから (jQuery を使用して) WebMethod を呼び出したいだけです。

4

4 に答える 4

0

その方法は次のとおりです。

[WebMethod]
public static string SayHello()
{
     return "Hola";
}

ページに を追加し、プロパティを次のようScriptManagerに設定する必要があります。EnablePageMethodstrue

<asp:ScriptManager id="sMgr" runat="server" EnablePageMethods="True" />

行うことは、ページにプロキシ クラスを作成することだけです。これにより、Javascript で次のことを行うだけでメソッドJavascriptを呼び出すことができます。SayHello

function InvokeSayHello()
{
     alert(PageMethods.SayHello()); //Will alert 'Hola'
}
于 2012-05-18T11:57:38.797 に答える
0

書く代わりに

    [System.Web.Services.WebMethod]

使用する

    [WebMethod]
    [System.Web.Script.Services.ScriptMethod]
于 2012-11-20T06:37:20.043 に答える
0

これが なしで機能するかどうかはわかりませんが、キーワードを使用せずScriptManagerに a を呼び出すことは間違いなく可能です。ASP ページは、他の Web サービスと同じように呼び出すことができます。. 関数は属性で装飾する必要があります。ページ クラス自体にタグなどを配置する必要はありません。ではなくこれらの関数にデータを送信していることに気付きましたが、これが必要かどうかはわかりません。PageMethodPageMethodyourpage.aspx/MethodName[WebMethod][ScriptMethod]POSTGET

于 2012-11-20T07:32:27.240 に答える
-1

[System.Web.Script.Services.ScriptMethod()]もメソッドに追加することをお勧めします。

**

http://geekswithblogs.net/frankw/archive/2008/03/13/asp.net-ajax-callbacks-to-web-methods-in-aspx-pages.aspx

于 2012-05-18T11:38:47.603 に答える