我在网页上有一些Ajax,它将一些数据提供给服务器端的VB.Net方法。一旦该数据在服务器端方法中,我需要调用另一个服务器端方法来使用我刚刚收集的数据。这是一个非常简化的例子:
' This method gets the input from the Ajax code on the web page.
<System.Web.Services.WebMethod> _
Public Shared Sub GetAwesome(VBInputText As String)
Dim strTest As String = VBInputText
' Now that we have collected input from the user,
' we need to run a method that does a ton of other stuff.
DisplayAwesome(VBInputText)
End Sub
Protected Sub DisplayAwesome(AwesomeIn As String)
' The real app does a lot more than this. For this example, it
' just sets the text of a literal.
litAwesomeResult.Text = AwesomeIn
End Sub
当然,在上面的例子中,DisplayAwesome(VBInputText)
给了我'无法引用实例成员...'错误。那么,现在可以从Protected Sub DisplayAwesome
拨打Public Shared Sub GetAwesome
吗?我希望能够接近这种解决方案,因为它可以很好地与应用程序一起使用,因为它已经由另一位同事编写。
答案 0 :(得分:1)
遗憾的是,您无法执行此操作,因为页面方法DisplayAwesome
定义为Protected
,您需要该类的实例才能访问Protected
方法。但是另一个实例的更改不会反映在当前的UI中。您可以做的另一件事是将DisplayAwesome
设为共享,但这次您无法访问共享函数内的UI元素。
在这种情况下你可以做的事情是,将数据返回到被调用的方法(在前端)并处理那里的litAwesomeResult.Text
答案 1 :(得分:0)
调用名为Form Class的sub,如下所示:
FormName.DisplayAwesome(VBInputText)
在VB.Net中,默认情况下可以使用Name of Form Class调用共享方法不共享的方法,因为默认实例是VB应用程序框架创建和管理它的表单类型被添加到项目中。
有关详细信息,请参阅: