2014-10-10 56 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