web-dev-qa-db-ja.com

静的Webメソッド内のページコントロールにアクセスする方法

静的WebMethodメソッドを使用してjQueryを使用するコードビハインドメソッドを呼び出しました。

そのWebメソッド呼び出しは成功しましたが、テキストボックスコントロールにアクセスしようとするとエラーが発生します。オブジェクト参照は、非静的フィールド、メソッド、またはプロパティに必要です。

[WebMethod]    
public static Savedata()
 {
     //code to insert data to DB

     //after inserting data successfully i need to change the text box text like following.        
      txtStatus.Text="Data Received";   
 }
7
user5061957

@Tim Schmelterが述べたように、webmethodからページのコントロールにアクセスできないため、これはこの質問に答えません。

asp.netが静的関数からコントロールにアクセスする を実行してください

[WebMethod]のポイントは、ASP.Netページのライフサイクルを実行しないことです。このように、それらは高速で並列化可能です。あなたのコントロールは存在しません。

あなたの質問は 静的Webメソッドでコントロールを取得する方法 と重複しています

9
Athul

受け入れられた答えはWebメソッドに対して間違っています。

Tim Schmelter がコメントで正しく述べられているように:

あなたはウェブメソッドからページのコントロールにアクセスできません

Webメソッドはページの状態を保持しないため、これは事実です。完全なポストバックではありません。代わりに、リクエストとともにセッションCookieのみが移動します。コントロール値を取得または設定するには、フルページポストバックを行う必要があります。

5
Patrick Hofman