私はなぜWebMethod属性メソッドは静的に宣言する必要があります..私のdefault.aspx.csファイルになぜWebMethodがStaticとして宣言されたのですか?
[WebMethod]
public static void ResetDate()
{
LoadCallHistory(TheNewDate.Date);
}
をWebMethod属性を宣言?
私はなぜWebMethod属性メソッドは静的に宣言する必要があります..私のdefault.aspx.csファイルになぜWebMethodがStaticとして宣言されたのですか?
[WebMethod]
public static void ResetDate()
{
LoadCallHistory(TheNewDate.Date);
}
をWebMethod属性を宣言?
これらは完全にステートレスなため、ページのクラスのインスタンスを作成せず、リクエスト(ViewStateやフォームフィールド値など)に何も渡されません。
HTTPはデフォルトでステートレスです。ASP.Netは、標準のページリクエスト中にViewState、Sessionなどでバックグラウンドで多くの処理を行い、開発者の生活を楽にします。
WebメソッドがAJAXを介して呼び出された場合、Webメソッドが遅すぎるため、要求状態を追跡するためにページに必要なすべてのフォームデータASP.Netが埋め込まれていません。多くの処理を行う必要がある場合は、専用のWebサービスに移動する必要があります。
HttpContext.CurrentHandlerを使用してページのメソッドにアクセスすることができます。詳細はhereで説明されています。また、必要に応じて現在のユーザーはHttpContext.Current.Userです。
これを詳しく説明する優れた記事hereがあります。
混乱しています。この[page](https://msdn.microsoft.com/en-us/library/byxd99hx%28v=90.aspx)のWebメソッドが非静的なのはなぜですか? – Moon
WebページではなくWebサービスでホストされているためです。 – Sean