從 ASP.NET 切換到麵包和黃油 HTML/jQuery 的優勢
我越來越厭倦關於控制項 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 框架。