2014-10-10 30 views
0

我的问题很简单,我想通过jQuery调用我的dll中的函数。如何从我的dll调用函数从jquery

我想下面

$(窗口).load(函数(){

$.ajax({ 
     type: "POST", 
     url: "RemotePaymentdll/Class1/CheckPending", 
     data: '{}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: alert("Success"), 
     error: alert("Error") 
    }) 

});

在我的DLL中的函数如下

Public Shared Sub CheckPending() 
    Dim aaa = "" 

End Sub 

我只是希望能够从jQuery的访问CheckPending()在我dll。我该怎么做?

回答

0

我建议使用HttpHandler做服务器端工作,你可以通过javascript调用它:

你可以创建一个.ashx文件与一些公司有点像这样:

<%@ 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 
+0

谢谢!有效。 – 2014-10-13 11:28:57

+0

但是,我可以更新我在这个httphandler中的webform控件吗?无论如何,这有可能吗? – 2014-10-13 11:38:25

+0

我很高兴你发现有用。您可以在处理程序中设置会话变量,并使用某种更新面板来刷新控制值,或者可以通过处理程序输出发送值并检查JavaScript中的输出并更新控件。 – 2014-10-13 16:32:35

1

通常情况下,JS只能访问本地资源和URL资源。

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

0

你可以尝试这样的事情:

$(window).load(function() { 
    var ObjFromDll = new ActiveXObject("RemotePaymentdll.Class1"), 
     result = ObjFromDll.CheckPending(); 
}); 

这将只适用于IE浏览器...

如果您有问题需要实例化ActiveXObject有看here