2011-06-01 96 views
0

我的.NET項目處理AJAX請求。根本沒有UI控件,它只是對每個AJAX文章的文本進行響應。適當的AJAX處理程序結構

這是我目前的結構:

<% 
SynchLock DBNull.Value 
    Main 
End SynchLock 
%> 

<script language="VB" runat="Server"> 

Sub Main 
    Dim a() As String = Request.Form("a").Split(" "c) 
    ' a: (0) version, (1) config, (2) userid, (3) sessionid, (4) activity 

    ' Initializations 

    Using conn As DbConnection = sess.Connection 
    Select Case a(4) 
    Case 0 
     ActivityOne 
    Case 1 
     ActivityTwo 
    Case 2 
     ActivityThree 
    ... 
    Case 28 
     ActivityTwentyEight 
    End Select 
    End Using 
End Sub 

'All the activity functions and lots of other Functions 

</script> 

這工作,但我認爲它可以得到改善;我不知道如何繼續。

一些活動稱爲子功能,我正在考慮打破一些進一步的活動。爲了封裝一個活動,我正在考慮功能改變活動類,像這樣的所有功能:

Select Case a(4) 
Case 0 
    Dim a1 As New ActivityOne 
    a1.Execute 
... 
End Select 

這是正確的做法?如果我繼續上課,我有相關的問題:

(1)我是否編碼類的「新」子或「執行」(或其他名稱)子?如果我編碼的「新」子,然後我可以減少上述代碼:

Select Case a(4) 
Case 0 
    New ActivityOne 
... 
End Select 

這似乎更容易,但有缺點嗎?

(2)這些活動都依賴於其他Request.Form輸入。我是否(a)從類中傳遞HttpContext.Current對象或(b)將Request對象傳遞給活動或(c)傳遞活動所需的特定Request.Form變量?

例如

(a)新ActivityOne'類訪問HttpContext.Current.Form( 「B」)等

Class ActivityOne 
    Sub New 
    Dim p1 As String = HttpContext.Current.Form("b") 
    ... 
    End Sub 
End Class 

(b)新ActivityOne(請求)

Class ActivityOne 
    Sub New(req As HttpRequest) 
    Dim p1 As String = req.Form("b") 
    ... 
    End Sub 
End Class 

(三)新ActivityOne(的Request.Form( 「b」))

Class ActivityOne 
    Sub New(p1 As String) 
    ... 
    End Sub 
End Class 
+0

這是一個ASP.NET文件嗎? – 2011-06-01 23:38:47

+0

是的,這是一個.aspx – ic3b3rg 2011-06-01 23:42:11

+1

你不應該爲此使用ASPX文件。使用HTTPHandlers。 – Phill 2011-06-02 01:18:40

回答

1

都依賴於其他所需物品的活動uest.Form輸入。我是否(a)從類中傳遞HttpContext.Current對象或(b)將Request對象傳遞給活動或(c)傳遞活動所需的特定Request.Form變量?

您可以傳遞Request.Form NameValue集合。

此外,由於您使用的是ASP.NET,因此您可以考慮使用支持ASP.NET AJAX的webservice click併爲每個活動創建方法。這會簡化你的代碼。你也可以創建一個WCF REST服務並用jQuery調用它。

您不需要挑選查詢字符串值或創建大量的switch語句。 ASP.NET具有處理這種事情的基礎設施。

+0

我喜歡關於傳遞Request.Form NameValue集合的想法。我不認爲我想要使用ASP.NET AJAX啓用的web服務。我在JavaScript中使用XMLHttpRequest來處理AJAX,並且它工作得很好。 – ic3b3rg 2011-06-02 02:07:26