這裏是我的2美分:
- (jquery.validate和jquery.validate.unobtrusive)VS(MicrosoftMVCValidation)
挑首先,因爲它是不顯眼的含義,HTML5 data- *屬性是在輸入字段上生成的,而驗證器不顯眼地附加到單獨的javascript文件中。隨着微軟驗證您的最終標記不再是標記,但它是與JavaScript混合標記。不僅如此,這會增加HTML頁面的大小,但它使得它們更加醜陋,無法從外部靜態資源的瀏覽器緩存功能中受益。
根據項目的不同,我決定是直接使用jQuery.validate插件還是使用自動生成的HTML5數據屬性,並讓jquery.validate.unobtrusive腳本根據某些DataAnnotations規則對自動客戶端腳本進行驗證我的觀點模型。那麼,實際上我並沒有使用DataAnnotations,而是使用FluentValidation.NET,但對客戶端無關緊要,因爲它們都發出了ModelMetaData。我必須同意,使用ASP.NET MVC 3,微軟向那些 jquery.validate.unobtrusive腳本邁出了一步。但基本上它將取決於我正在進行的項目和我需要的控制量。
- (jquery.unobtrusive阿賈克斯)VS(MicrosoftAjax & MicrosoftMVCAjax)以上:-)我會建議你使用純的jQuery
沒有,但如果你有jquery.unobtrusive之間挑-ajax和MicrosoftAjax選擇第一個與前一個完全相同的原因。現在我應該解釋爲什麼我不喜歡。我已經指出了所有Microsoft *腳本的完整性,所以我們不要再重複一遍。即使微軟自己也意識到了自己的錯誤,並從ASP.NET MVC 3開始,jQuery成爲默認庫,它們的腳本僅包含在與舊版應用程序的兼容中,但我想在將來的版本中它們將完全消失。問題是爲什麼純jQuery與jQuery.unobtrusive-ajax相比?那麼,首先,我對AJAX請求的事件有更多的控制權。使用jquery.unobtrusive-ajax時,例如當在OnSuccess回調中返回JSON對象時,它們不會自動分析爲JavaScript對象,您將不得不手動解析,這只是讓我瘋狂。
這是太棒了,正是我一直在尋找。 :)一方面的問題...驗證,你把兩個腳本放在你的頁面上,或者只是選擇一個或另一個?例如是不顯眼的依賴jquery.validate? – Joshua
@Joshua,是的,你需要以下3個腳本:'jquery','jquery.validate'和'jquery.validate.unobtrusive'。 –
非常感謝您的幫助! :) – Joshua