以前一直想知道用戶名是怎么在客服端驗證的,不用到服務器端驗證,學習了MVC3之后,今天終於實現了用戶名的驗證,感覺無比的激動,嘿嘿嘿嘿,畢竟是想了很久也不知道的辦法。
在MVC之中主要是用到Remote的一些屬性吧,它的一些參數如下:Remote(string Action,string controller,string ErrorMessage,......)Action是在驗證的時候從數據庫讀取數據的方法,返回JSON對象。廢話不多說了吧,下面直接給出源碼實例:
首先是在Model層之中的LoginName屬性上給予添加驗證屬性,代碼如下(主要是綠色部分):
1 [DisplayName("用戶名")] 2 [Required(ErrorMessage = "不能為空")] 3 [Remote("IsUserExists", "Validate", "Admin", ErrorMessage = "用戶名已經存在!", HttpMethod = "POST")] 4 public string LoginName { get; set; }
現在就需要用到Remote的一些屬性了,必須實現Remote的一些參數,否則出錯,我這里實現的參數的C#(基於Razor視圖)代碼如下:
1 public class ValidateController : Controller 2 { 3 4 Entities db = new Entities(); 5 public ActionResult IsUserExists(string LoginName) 6 { 7 int c = db.users.Where(p => p.LoginName == LoginName).Count(); 8 bool exists = c > 0; 9 return Json(!exists, JsonRequestBehavior.AllowGet); 10 } 11 12 }
Validate是在Remote定義的一個Controller吧,IsUserExists則是定義的一個Action,就這樣吧,代碼是如此的簡單的,實現的效果也是挺好的,下面看看效果吧:
效果即簡單又有點酷吧!對於這個結果,我這里是沒有提交數據的,只要你輸入完后就會出現如圖的效果的,你也來試試吧!