驗證是ASP.NET MVC應用程式中的一個重要方面。 它用於檢查使用者輸入是否有效。 ASP.NET MVC提供了一組易於使用的驗證,同時也是檢查錯誤並在必要時向使用者顯示訊息的強大方法。
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用戶端驗證檢測到錯誤,並且還顯示錯誤訊息。