Dot-Net

從 ASP.NET 切換到麵包和黃油 HTML/jQuery 的優勢

  • April 2, 2009

我越來越厭倦關於控制項 ID 的所有怪癖,試圖在伺服器端獲取您的數據(基於客戶端事件)。我似乎花更多的時間與 asp.net 中的控制項作鬥爭,我認為這花費的時間比使用它獲得的時間要多。

我正在考慮將純 html/javascript 與 jQuery 和一個返回 json 數據的 Web 服務一起使用。

我認為我會從網路表單中錯過的唯一一件事是 MasterPages、會話管理、基於 Windows 登錄的身份驗證以及可能的驗證器(儘管它們也有一些怪癖)。(其實可能不針對session和auth,但是我從來沒有開發過webservices)

  • 我思考這個問題的方式有什麼問題,或者我沒有想到什麼?
  • asp.net 中是否有您認為我會想念的東西?
  • 有沒有人這樣做過並想分享經驗?

另請注意,我只有 Framework 2.0 可用於開發。


**編輯:**在 asp.net 中給我帶來麻煩的事情讓我想知道切換:

這是一個給我帶來問題的頁面範例。

有一個樹表(master/details)

您可以編輯每個子行上的欄位。

當您按下保存按鈕時,必須更新組行中的數據(只是選擇中的數據,數據庫中沒有修改),作為子行中的數據。

我不想刷新整個頁面,因為顯示的記錄是基於搜尋條件的。

主/詳細資訊是使用中繼器生成的

嘗試從後面的程式碼更新記錄真的很古怪,而且仍然不知道更新顯示。

使用 jQuery 和 Web 服務,我的猜測是我可以直接更新到數據庫,請求我想要顯示的內容,然後更新該記錄。這就是讓我想知道 asp.net 是否妨礙我的事情。


________________________________________________________________________
| - 關於集團的一些細節|
|________________________________________________________________________|
|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
| ChildRecord 一些可編輯的欄位
| ChildRecord 一些可編輯的欄位
| ChildRecord 一些可編輯的欄位
| ChildRecord 一些可編輯的欄位
|_______________________________________________________|
________________________________________________________________________
| + 關於集團的一些細節 |
|________________________________________________________________________|
________________________________________________________________________
| + 關於集團的一些細節 |
|________________________________________________________________________|

Edit2: 我對 ASP.NET 的問題與 ajax 無關。是的,我使用 jQuery 使界面更加動態,例如在不需要時顯示/隱藏搜尋部分以及從樹中折疊細節,但這就是我所做的一切。

困擾我的是,如果我想檢查在這個例子中點擊了哪個按鈕,我不得不使用一些感覺有點笨拙的技巧。

如果要在轉發器中使用數據綁定組合框,則必須使用程式碼隱藏來設置選定的值,檢索選定的數據會很痛苦。

接下來,如果要檢查修改了哪些數據,則必須將數據表保存在視圖狀態中,從轉發器中的所有控制項中讀取數據,然後與數據表進行比較以進行更新。這是用asp.net困擾我的這類事情。

您不必放棄一切,例如 MasterPages。您可能會嘗試關閉 ViewState,關閉 EventValidation 並儘可能少地使用 ASP.NET 控制項(基本上 - 如果使用 XHTML 可以輕鬆實現某些功能,請將其編寫為 XHTML)。您仍然可以在需要的地方使用 ASP.NET 控制項。

我認為你並不孤單。在使用 WebForms 兩年後,我也厭倦了它們,在我發現 jQuery 有多棒以及它與 Web 服務的配合如何之後,我極大地改變了我的開發模型。我現在正在慢慢轉向 MVC,因為我發現它是最終的解決方案,但是對於其他一些應用程序(小型和/或針對 2.0),我只是嘗試使用更少的伺服器控制項,擺脫 ViewState,使用更多的 AJAX(網路服務)。它工作正常。我推薦 Dave Ward 的Encosia - 從這篇文章開始。我承認它讓我看到了使用 .NET Framework 開發 Web 應用程序的其他一些方法。祝你好運!

如果使用得當,ASP.NET 和 JavaScript/jQuery Web 應用程序真的可以相互補充。我現在已經在 3 個不同的 Web 應用程序中實現了 jQuery,並且喜歡它的每一分鐘。只要您充分利用每個組件,您最終會對項目感到滿意。

您特別提到控制 ID 引起了問題,但實際上並沒有那麼大的問題。

JavaScript

document.getElementById("<%=this.MyObject.ClientID %>");

jQuery

$("#<%=this.MyObject.ClientID %>")....

在您的父子關係範例中,您可以非常輕鬆地準確處理您使用 ASP.NET 討論的內容以及使用 UpdatePanels 討論的 AJAX 框架。

引用自:https://stackoverflow.com/questions/710016