MVC模型驗證

2022-02-08 04:28:10 字數 1243 閱讀 2493

一、在動作方法中執行驗證

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,一般情況...