ASP.Net MVC驗證

驗證是ASP.NET MVC應用程序中的一個重要方面。 它用於檢查用戶輸入是否有效。 ASP.NET MVC提供了一組易於使用的驗證,同時也是檢查錯誤並在必要時向用戶顯示消息的強大方法。

DRY

DRY代表(Don’t Repeat Yourself )不要重複自己,是ASP.NET MVC的核心設計原則之一。從開發的角度來看,鼓勵只在一個地方指定功能或行爲,然後在整個應用程序中使用它。
這樣可以減少編寫的代碼量,使代碼編寫起來更容易,更容易維護。

爲模型添加驗證

下面來看看,如何爲上一章項目添加員工時驗證的一個簡單例子。 在這個例子中,我們將數據註釋添加到模型類,它提供了一些內置的驗證屬性集,可以直接在應用程序中應用到任何模型類或屬性,例如:RequiredStringLengthRegularExpressionRange驗證屬性。

它還包含格式化屬性,如DataType幫助格式化,不提供任何驗證。 驗證屬性指定要對其應用的模型屬性強制執行的行爲。

RequiredMinimumLength屬性指示屬性必須具有值; 但是沒有任何東西阻止用戶輸入空白格來滿足這個驗證。RegularExpression屬性用於限制可輸入的字符。

可以通過添加不同的註釋屬性來更新 Employee 類,如以下代碼所示 -

還需要對數據庫設置限制。 但是,SQL Server對象資源管理器中的數據庫顯示name屬性被設置爲NVARCHAR(MAX),如以下截圖所示 -

現在我們還需要對數據庫設置限制。 但是,SQL Server對象資源管理器中的數據庫顯示name屬性被設置爲NVARCHAR(MAX),如以下屏幕截圖所示 -

爲了在數據庫上設置這個限制,我們將使用遷移來更新模式。

工具 -> NuGet程序包管理器 -> 程序包管理器控制檯 打開程序包管理器控制檯窗口。
ASP.Net

在軟件包管理器控制檯窗口中逐個輸入以下命令。

Enable-Migrations
add-migration DataAnnotations
update-database

以下是在 程序包管理器控制檯 窗口中執行這些命令後的日誌。
ASP.Net

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,這是數據庫中新的長度限制,如以下快照中所示 -
ASP.Net

運行此應用程序並通過指定以下URL轉到創建視圖:http://localhost:63004/Employee/Create -
ASP.Net

在這些字段中輸入一些無效的數據,然後點擊 創建 按鈕,如下圖所示 -
ASP.Net

看到jQuery客戶端驗證檢測到錯誤,並且還顯示錯誤消息。