2008-09-15 67 views
0

我正在使用ASP.net。

我想調用我正在使用的頁面的基類上存在的方法。我想通過Javascript調用這個方法,並且不需要任何渲染由ASP.net處理。

什麼是最簡單的方法來完成這一點。

我看了一下由於某種原因沒有工作的PageMethods,發現很多其他人都遇到了麻煩。如何通過AJAX調用方法而不會導致頁面渲染?

回答

2

它取決於方法依賴於什麼,但假設它是一個靜態方法,或者它不依賴頁面生命週期來工作,那麼您可以暴露一個web服務端點並使用您想要的任何Javascript調用機制使用。

1

您使用哪個庫進行Ajax調用?如果您使用的是JQuery,那麼您可以創建靜態方法並在您的頁面上調用它們。讓我知道你是否需要進一步的幫助!

0

由於Thunder3建議,公開一個Web Service。完成此操作後,可以使用ScriptManager(或ScriptManagerProxy)註冊webservice,這將生成JavaScript包裝器。這個包裝爲您提供了一個良好的通話接口。

0

爲了擴大@Azam所提出的觀點,如果你不想渲染頁面上的html,你可以設置返回類型爲xml之類的其他東西,並做一個response.write,就像我在代碼如下。在GET期間,我希望發回html,但在POST期間,我通過線路發回一些XML。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Response.Cache.SetCacheability(HttpCacheability.NoCache) 
     If Request.HttpMethod = "GET" Then 
      'do some work and return the rendered html 
     ElseIf Request.HttpMethod = "POST" Then 
      'do some work and return xml 
      Response.ContentType = "text/xml" 
      Response.Write("<data></data>") 
      Response.End() 
     Else 
      Response.StatusCode = 404 
      Response.End() 
     End If 
    End Sub 
相關問題