2

私は次のウェブメソッドを持っています

<System.Web.Services.WebMethod()> Public Shared Function NewMethod(ByVal str1 As String) As String
  LoadBlock(str1)
  Return "Success"
End Function

そして次の手順

Public Sub LoadBlock(ByVal AA As Integer)
  panAway.Visible = False '<--ASP panel control
  lblHome.Visible = False '<--ASP label control
End

次のエラーが発生します

Cannot refer to an instance member of a class from within a shared method or 
shared member initializer without an explicit instance of the class.

LoadBlock を Shared として設定していないため、次のエラーが発生することを理解しています

しかし、それを行うと、手順内のすべてのコントロールが...上記のエラーが発生します

それについて私にできることはありますか?

4

1 に答える 1

4

「ページ メソッド」は常にShared( staticC# では) メソッドです。ページ上のコントロールや、他のインスタンス データやメソッドを参照することはできません。

実際、ASP.NET では、ページのインスタンスは各 HTTP 要求中にのみ存在することに注意してください。WebMethod へのリクエストは別のリクエストです。参照できるページのインスタンスはありません。インスタンスは、WebMethod へのリクエストが到着するまでに破棄されています。

于 2013-10-13T09:33:14.800 に答える