一、在動作方法中執行驗證
controller中使用modelstate.addmodelerror()方法在驗證中根據條件輸出錯誤資訊。
如: modelstate.addmodelerror("username", "使用者名稱不能為空");
需要注意的是,這句生成的是屬性級錯誤,因為addmodelerror的第乙個引數指定的是被驗證的屬性名;
如果要改成模型級錯誤,則保持第乙個引數為空,如:modelstate.addmodelerror("", "使用者名稱不能為空");
屬性級錯誤和模型級錯誤
屬性級錯誤是顯示在 字段後面
模型級錯誤是統一顯示在頁面指定的位置
(自己總結:模型級錯誤用處就是動作方法中邏輯處理過程需要丟擲的錯誤)
如圖所示:
對應的cshtml頁面**:
html.validationsummary()輔助器缺省會顯示所有錯誤,包括模型級錯誤和屬性級錯誤。
過載 html.validationsummary(true),boolean值為true代表只顯示模型級錯誤,忽略屬性級錯誤,如:
可以看到,現在它忽略了屬性級錯誤,只會顯示模型級的。
二、在模型類中執行驗證
在模型類中通過 驗證註解屬性 來指定驗證規則,驗證註解屬性有內建的預設模型繫結器defaultmodelbinder進行檢測並強制執行。
在對模型類運用繫結過程的任何地方都會強制執行驗證規則,而不只存在於個別方法中。
內建的驗證註解屬性有:
compare
range
regularexpression
required
stringlength
三、其他驗證方式
除了以上兩種之外,還有其他的方式進行模型驗證,如:
1、在模型繫結器中驗證;
2、建立自驗證模型;
詳見《精通asp.net mvc3框架》485頁、492頁
mvc 驗證登入
很多時候,我們需要多個頁面驗證使用者是否登入 有2中方法。一種是繼承 attrbuite屬性,新增驗證,這個可以網上搜尋。我一般使用下面的方式 建立basewebcontroller繼承controller。然後實現onactionexcuting方法,這樣所有繼承basewebcontroller...
MVC 程式設計模型
mvc 是用於構建 web 應用程式的一種框架,使用 mvc model view controller 設計 mvc 模型通過三個邏輯層來定義 web 應用程式 模型 model 模型 model 是應用程式中用於處理應用程式資料邏輯的部分。通常模型物件在資料庫中訪問資料。view 檢視 view...
MVC模型繫結
一 理解模型繫結 模型繫結是http請求與c 方法之間的乙個橋梁,它根據 action 方法中的 model 型別建立 net 物件,並將 http 請求資料經過轉換賦給該物件。二 預設的模型繫結器 應用程式有多個繫結器,大多數的都是依賴與內建繫結器類 defaultmodelbinder,一般情況...