如何从jquery调用my dll中的函数

如何从jquery调用my dll中的函数,jquery,vb.net,dll,Jquery,Vb.net,Dll,我的问题很简单,我想通过jquery调用dll中的函数 我正在尝试下面的方法 $(窗口)。加载(函数(){ })) 我的dll中的函数如下 我只想能够从jquery访问我的dll中的CheckPending()。我该怎么做?通常,JS只能访问本地资源和URL资源 我建议在服务器端创建一个Resuful API来调用CheckPending方法。 JQuery使用这个API。您可以尝试以下方法: $(window).load(function () { var ObjFromDll = ne

我的问题很简单,我想通过jquery调用dll中的函数

我正在尝试下面的方法

$(窗口)。加载(函数(){

}))

我的dll中的函数如下


我只想能够从jquery访问我的
dll
中的
CheckPending()
。我该怎么做?

通常,JS只能访问本地资源和URL资源

我建议在服务器端创建一个Resuful API来调用CheckPending方法。
JQuery使用这个API。

您可以尝试以下方法:

$(window).load(function () {
   var ObjFromDll = new ActiveXObject("RemotePaymentdll.Class1"),
       result = ObjFromDll.CheckPending();
});
<%@ WebHandler Language="VB" Class="MyTestHandler" %>
Imports System
Imports System.Web
Imports System.IO
Imports System.Data.SqlClient
Imports System.Data
Imports System.Xml

    Public Class MyTestHandler : Implements IHttpHandler


        Private ReadOnly Property Parameter1() As Integer
            Get
                If Not IsNothing(HttpContext.Current.Request.QueryString("Parameter1")) Then
                    Return CInt(HttpContext.Current.Request.QueryString("Parameter1"))
                Else
                    Return -1
                End If
            End Get
        End Property

        Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
            context.Response.Clear()
            context.Response.Buffer = True
            context.Response.Expires = -1
            context.Response.Write("YOUR OUTPUT HERE")
            context.Response.Flush()
            context.Response.End()
        End Sub

        Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
            Get
                Return False
            End Get
        End Property

    End Class
这只适用于IE


如果您在实例化
ActiveXObject
have look

时遇到问题,我建议使用HttpHandler执行服务器端工作,您可以通过javascript调用它:

您可以使用类似以下代码创建.ashx文件:

$(window).load(function () {
   var ObjFromDll = new ActiveXObject("RemotePaymentdll.Class1"),
       result = ObjFromDll.CheckPending();
});
<%@ WebHandler Language="VB" Class="MyTestHandler" %>
Imports System
Imports System.Web
Imports System.IO
Imports System.Data.SqlClient
Imports System.Data
Imports System.Xml

    Public Class MyTestHandler : Implements IHttpHandler


        Private ReadOnly Property Parameter1() As Integer
            Get
                If Not IsNothing(HttpContext.Current.Request.QueryString("Parameter1")) Then
                    Return CInt(HttpContext.Current.Request.QueryString("Parameter1"))
                Else
                    Return -1
                End If
            End Get
        End Property

        Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
            context.Response.Clear()
            context.Response.Buffer = True
            context.Response.Expires = -1
            context.Response.Write("YOUR OUTPUT HERE")
            context.Response.Flush()
            context.Response.End()
        End Sub

        Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
            Get
                Return False
            End Get
        End Property

    End Class

导入系统
导入系统.Web
导入System.IO
导入System.Data.SqlClient
导入系统数据
导入System.Xml
公共类MyTestHandler:实现IHttpHandler
私有只读属性参数1()为整数
得到
如果不是Nothing(HttpContext.Current.Request.QueryString(“参数1”)),那么
Return CInt(HttpContext.Current.Request.QueryString(“参数1”))
其他的
返回-1
如果结束
结束
端属性
Public Sub-ProcessRequest(ByVal上下文作为HttpContext)实现IHttpHandler.ProcessRequest
context.Response.Clear()
context.Response.Buffer=True
context.Response.Expires=-1
context.Response.Write(“此处的输出”)
context.Response.Flush()
context.Response.End()
端接头
公共只读属性IsReusable()作为布尔值实现IHttpHandler.IsReusable
得到
返回错误
结束
端属性
末级

但是我可以在此httphandler中更新我的webform控件吗?不管怎样,这可能吗?我很高兴你发现这很有用。您可以在处理程序中设置会话变量并使用某种更新面板来刷新控件值,也可以通过处理程序输出发送值并检查JavaScript中的输出并更新控件。HttpHandler对于从JavaScript与服务器端.net代码交互非常有用,但是,您必须评估它们被利用的风险,并在必要时实施安全机制