驗證是ASP.NET MVC應用程式中的一個重要方面。 它用於檢查用戶輸入是否有效。 ASP.NET MVC提供了一組易於使用的驗證,同時也是檢查錯誤並在必要時向用戶顯示消息的強大方法。
DRY
DRY代表(Don’t Repeat Yourself )不要重複自己,是ASP.NET MVC的核心設計原則之一。從開發的角度來看,鼓勵只在一個地方指定功能或行為,然後在整個應用程式中使用它。
這樣可以減少編寫的代碼量,使代碼編寫起來更容易,更容易維護。
為模型添加驗證
下麵來看看,如何為上一章專案添加員工時驗證的一個簡單例子。 在這個例子中,我們將數據注釋添加到模型類,它提供了一些內置的驗證屬性集,可以直接在應用程式中應用到任何模型類或屬性,例如:Required
,StringLength
,RegularExpression
和Range
驗證屬性。
它還包含格式化屬性,如DataType
幫助格式化,不提供任何驗證。 驗證屬性指定要對其應用的模型屬性強制執行的行為。
Required
和MinimumLength
屬性指示屬性必須具有值; 但是沒有任何東西阻止用戶輸入空白格來滿足這個驗證。RegularExpression
屬性用於限制可輸入的字元。
可以通過添加不同的注釋屬性來更新 Employee
類,如以下代碼所示 -
還需要對數據庫設置限制。 但是,SQL Server對象資源管理器中的資料庫顯示name
屬性被設置為NVARCHAR(MAX)
,如以下截圖所示 -
現在我們還需要對數據庫設置限制。 但是,SQL Server對象資源管理器中的資料庫顯示name
屬性被設置為NVARCHAR(MAX)
,如以下螢幕截圖所示 -
為了在資料庫上設置這個限制,我們將使用遷移來更新模式。
從 工具 -> NuGet程式包管理器 -> 程式包管理器控制臺 打開程式包管理器控制臺窗口。
在軟體包管理器控制臺窗口中逐個輸入以下命令。
Enable-Migrations
add-migration DataAnnotations
update-database
以下是在 程式包管理器控制臺 窗口中執行這些命令後的日誌。
Visual Studio也將打開從DbMIgration
類派生的類,可以在其中看到更新Up
方法中的模式約束的代碼 -
namespace MVCSimpleApp.Migrations {
using System;
using System.Data.Entity.Migrations;
public partial class DataAnnotations : DbMigration{
public override void Up(){
AlterColumn("dbo.Employees", "Name", c => c.String(maxLength: 60));
}
public override void Down(){
AlterColumn("dbo.Employees", "Name", c => c.String());
}
}
}
name
字段的最大長度為60
,這是資料庫中新的長度限制,如以下快照中所示 -
運行此應用程式並通過指定以下URL轉到創建視圖:http://localhost:63004/Employee/Create
-
在這些字段中輸入一些無效的數據,然後點擊 創建 按鈕,如下圖所示 -
看到jQuery客戶端驗證檢測到錯誤,並且還顯示錯誤消息。