2017-03-24 68 views
-1

我有一個關於AJAX請求的問題,要求在javascript中通過javascript函數執行一個簡單的messagebox函數。該功能不起作用,但AJAX請求返回成功status.I使用Visual Studio 2015(ASP Web窗體)。AJAX請求返回成功,但未執行

希望這不是重複的,因爲我無法在這裏找到它。

通過按鈕 「的Default.aspx」 運行

JAVASCRIPT部分:

<script type = "text/javascript"> 
    function JScallVBmethod() { 

    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/Default.aspx.vb/message", 

     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function() { 
      alert("success"); 
     }, 
     failure: function() { 
      alert("failure"); 
     } 
    }); 
} 
</script> 

VB功能,在 「Default.aspx.vb」

Partial Class _Default 
    Inherits Page 
    <System.Web.Services.WebMethod()> 
    Public Sub message() 

     MsgBox("WORKS VB") 

    End Sub 
End Class 

按鈕被點擊運行,JS運行功能,並且在不執行VB功能的情況下返回成功。如果我直接調用VB函數,它可以工作,但包括頁面PostBack。可能我在任何配置文件的設置中有什麼?

+2

爲什麼要嘗試在.NET Web應用程序中顯示消息框?您正在使用的URL也看起來可疑。 –

+0

與其編輯問題,您應該將其作爲答案發布,以便其他人知道您是如何解決問題的。請考慮參加[導覽]瞭解網站的工作方式。 – Bugs

回答

0

我終於修好了。

我錯過了VB模塊中的Imports System.Web.Services(相當於C#的using System.Web.Services)。

此外,網址,你是對的。這是直接進入VB模塊,這是不正確的。現已更改爲url: "Default.aspx/message"

0

我更熟悉MVC.C#,所以我可能會不正確。但是,如果這是類似的,你的web應用程序不是一個獨立的應用程序,而是運行在IIS中,不是嗎? IIS是正在運行的實際應用程序。在這種情況下,您通常無法從Windows窗體或控制檯應用程序中執行某些操作。這部分是出於安全原因。但也出於實際的原因。服務器是爲了在沒有用戶交互的情況下運行的,所以IO沒有意義。