実際には、個別の Web サービスは必要ありません。同じページで実際に AJAX を実行できます。私はこれについて少し錆びているので、我慢してください。しかし、あなたがすることは次のとおりです。
- AJAX コントロール ツールキットから ToolkitScriptManager を追加する
- HTML で、フォーム タグの直後にこれを追加します。
<asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
[ScriptService]
ページクラス宣言に属性を追加します
[ScriptMethod]
呼び出したいメソッドに属性を追加します。デフォルトでは JSON として送信されますが、次を使用して XML で応答できます。[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
- このメソッドは、ページ レンダリング サイクルを再実行せずに実行する必要があるため、静的である必要があります。
- これで、関数を呼び出すための jQuery が必要になります
[ScriptService]
public class MyPage : Page
{
[ScriptMethod]
public static string GetText() { return "Hello, world!"; }
}
<html>
<!-- jQuery scripts -->
<body>
<script language="javascript">
$.ready(function () {
var text = PageMethods.GetText();
$("#label1").value(text);
});
</script>
<form runat="server">
<asp:ToolkitScriptManager runat="server" EnablePageMethods="true"/>
<asp:Label runat="server" ID="label1"/>
</form>
</body>
</html>