ASP.Net MVC驗證
驗證是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客戶端驗證檢測到錯誤,並且還顯示錯誤消息。