MVC驗證01-基礎、遠端驗證

Darren Ji發表於2014-03-03

本文體驗MVC服務端和客戶端驗證。主要涉及:
※ 基礎驗證
※ 遠端驗證1個或多個屬性及注意點

  基礎體驗

建立MVC4的Internet專案,本身包含了基本的Model,Views,Controller.

□ Model打上驗證特性

MVC驗證01-基礎、遠端驗證展開

□ HomeController中關於註冊的部分

MVC驗證01-基礎、遠端驗證展開

□ /Home/Register檢視

MVC驗證01-基礎、遠端驗證展開

效果:
加上幾個驗證

□ 去除客戶端驗證

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

把與客戶端驗證相關的屬性設定為false,發現驗證慢了很多。

  體驗遠端驗證屬性

有時候,比如驗證使用者名稱是否存在,我們希望可以發一個非同步請求到控制器。
給屬性打上Remote屬性。

MVC驗證01-基礎、遠端驗證展開

Validate控制器

MVC驗證01-基礎、遠端驗證展開


注意:
遠端驗證控制器方法引數必須和view model中需要遠端驗證的屬性一致,但不區分大小寫。

結果:
遠端驗證失敗

□ 同時遠端驗證多個屬性    

比如我們想同時遠端驗證UserName和Email。
我們可以在View model的其中一個屬性打上Remote,其它需要Remote驗證的屬性放在AdditionalFields中列舉。

public string UserName { get; set; }

[Remote("CheckUserName", "Validate", AdditionalFields = "UserName", ErrorMessage = "遠端驗證失敗")]   
public string Email { get; set; } 

注意:
AdditionalFields列舉的欄位是區分大小寫的。

對應控制器遠端驗證方法:

MVC驗證01-基礎、遠端驗證展開


相關文章