从javascript执行VB WebMethod

问题描述

| 我正在尝试消除我的aspx页面上的VB.NET按钮。尝试使用javascript和ajax执行我的vb所具有的相同代码。 我放入一个脚本管理器,将EnablePageMethods设置为true,添加了一个静态子例程,并在我的javascript函数中引用了它(顺便说一句,这似乎是执行现有子例程的大量工作)。 javascript调用了我的后台代码,并且几乎可以正常工作。 问题是,当SimulatePrintBatchClick尝试对控件执行任何操作时,我现在收到NullReferenceException。 错误是“对象引用未设置为对象的实例”,行是“ pnlVars.Controls.Clear” 这是UW.aspx的代码:
<WebMethod()> _
Public Shared Sub PrintBatchFromJSWM()
    Dim UWI As New UW

    UWI.SimulatePrintBatchClick()
End Sub


Sub SimulatePrintBatchClick()
    Dim Client As New LetterWriterClient

    \'Run ExStream and get the PDF File
    Globals.PDF_Data = Nothing
    Globals.PDF_Data = Client.ProcessDatFile(Session(\"SessionID\").ToString)

    \'Reload the form -- turn off all controls,initialize variables and make the PDF iFrame visible
    pnlVars.Controls.Clear() \'Bombs out on THIS line of code
    pnlPDF.Visible = True
    Me.SendToBach.Visible = False
    Session.Contents(\"LetterVariables\") = Nothing
    Session.Contents(\"PolicyInformation\") = Nothing
    Session.Contents(\"Submitted\") = True
    Response.Redirect(\"UW.aspx\")
End Sub
有趣的是,当我在PrintBatch_Click中运行以上代码时,所有代码都可以正常执行。我真的不明白为什么它会作为子例程爆炸。 也许这不是做到这一点的方法,但是我迷失了寻找另一种方法的方法。最初,此代码是由ASP / VB按钮处理的,但规范要求将其删除。 我可以通过上面的代码来完成这项工作吗? 谢谢, 杰森     

解决方法

        您不能在WebMethod或AjaxMethod中使用任何服务器控件,因为它们不是Page生命周期的一部分,请使用Javascript访问这些控件。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...