2011-04-05 43 views
0

AJAX很新,但從網上教程學到了一點。如果我使用的PHP都會很好,但...使用AJAX與aspx後端?

...我必須使用VB.Net。 Microsoft提供了用於製作AJAX的黑魔法工具(在Visual Studio IDE中),但使用這些工具看起來絕望而複雜,而且這些工具的文檔僅涵蓋最簡單的示例。相比之下,自己編寫腳本似乎更容易,我會理解正在發生的事情。

所以我的問題是,是否有可能編寫我自己的AJAX JavaScript(創建XMLHttpRequest對象等),並使用VB.Net而不是PHP編寫服務器端函數?有沒有人試過這個?

回答

0

當然。您可以在服務器上實現一個HttpHandler,以便完全控制請求和響應發生的情況。微軟AJAX的東西有點像黑魔法盒子,但ASP.NET不是。

這裏是一個起點:

public class MyHandler : IHttpHandler 
{ 
    #region IHttpHandler Members 

    public bool IsReusable 
    { 
     get { return true; } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.Write("Hello AJAX World"); 
    } 
} 

而且不要忘記註冊在web.config的處理程序;)

<add name="ajax_page.ashx*" 
    path="ajax_page.ashx" 
    verb="*" 
    type="MyNamespace.MyHandler, MyAssembly" /> 

下面是這應該是什麼我最好的猜測就像在VB.NET中一樣(注意:我從來沒有寫過一行VB.NET)

Public class MyHandler 
    Inherits IHttpHandler 

    Public Property IsReusable() As Boolean 
     Get 
      Return True 
     End Get 
    End Property 

    Public Sub ProcessRequest(ByVal context as HttpContext) 
     context.Response.Write("Hello AJAX World") 
    End Sub 
End Class 
+0

謝謝!但是,我如何從客戶那裏得到這個?我找到的教程代碼有「ajaxRequest.open(」GET「,」nameOfServerSideFile「,true)」,但這似乎不適用於文件名。我不需要在某處指定「ProcessRequest」方法嗎? – nttaylor 2011-04-05 21:26:50

+0

@Noel Taylor,您可以使用您用於使用PHP進行AJAX的相同代碼。順便說一句,你沒有使用jQuery或其他JavaScript庫?它使得AJAX更輕鬆! – tster 2011-04-05 21:29:35

+0

我沒有使用jQuery等,B/C它會掩蓋我的底層細節。當我更好地學習AJAX時,我可能會使用它,但現在我喜歡看基線代碼。 但是,我沒有得到服務器端代碼的迴應。在PHP中,我可以「回顯」響應,但VB.Net沒有這樣的東西嗎?由於我無法在類中調用特定的方法,我不知道如何以返回值的形式發回響應。你能照亮嗎?感謝您的所有幫助。 – nttaylor 2011-04-05 21:36:54