2013-02-14 60 views
1

當我們寫如何啓用客戶端驗證工作?

<appSettings> 
     <add key="ClientValidationEnabled" value="true" /> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

引擎蓋下會發生什麼樣的變化?

我期望它爲我們的表單元素的事件添加函數。

回答

1

在堅果殼中,它使用Javascript。每個元素都用指示要執行的驗證類型的數據屬性進行修飾。提交表單時,會觸發javascript,並運行所有標記爲通過驗證器進行驗證的元素。

像往常一樣,然後再次在服務器上執行相同的驗證。

+0

時,它的提出,意味着它與提交事件(但是當聯想完成?)相關聯的JavaScript被激發,但它不僅與提交,其工作原理與事件的內容,請單擊,KEYUP – 2013-02-14 12:39:59

1

參見本(非常好的文章):Unobtrusive Client Validation in ASP.NET MVC 3

一些提取物相同:

在MVC 3,我們有一個標誌開啓不顯眼的JavaScript的模式,這使得二者不顯眼的Ajax和不顯眼客戶端驗證。默認關閉Unobtrusive JavaScript模式,以便與從MVC 1.0和MVC 2升級的項目向後兼容。但是,我們已經在MVC 3項目模板中將其打開,所以新項目默認使用不引人注意的JavaScript支持。此外,您需要啓用客戶端驗證(默認情況下保持關閉狀態)。

我們已將JSON替換爲HTML 5兼容屬性,該屬性描述了要附加到輸入字段的驗證器。我們還將一些HTML屬性附加到驗證消息跨度,以便它們可以與它們所連接的輸入字段相關聯。

<label for="FirstName">FirstName</label> 
<input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" /> 
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>