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 類,如下面的程式碼所示。

using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;

namespace MVCSimpleApp.Models {
   public class Employee{
      public int ID { get; set; }
      [StringLength(60, MinimumLength = 3)]
		
      public string Name { get; set; }
      [Display(Name = "Joining Date")]
      [DataType(DataType.Date)]
      [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}",
		
      ApplyFormatInEditMode = true)]
      public DateTime JoiningDate { get; set; }
      [Range(22, 60)]
      public int Age { get; set; }
   }
}

現在我們還需要設定資料庫的限制。但是,SQL Server 物件資源管理器中的資料庫顯示 name 屬性設定為 NVARCHAR(MAX),如下面的螢幕截圖所示。

NVARCHAR (MAX)

為了在資料庫上設定此限制,我們將使用遷移來更新模式。

從“工具”→“NuGet 包管理器”→“包管理器控制檯”開啟包管理器控制檯視窗。

Package Manager Console

在**包管理器控制檯**視窗中逐一輸入以下命令。

Enable-Migrations
add-migration DataAnnotations
update-database

以下是執行這些命令後包管理器控制檯視窗的日誌。

Package Manager Console Window

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,這是資料庫中的新長度限制,如下面的快照所示。

New Length Limits

執行此應用程式並透過指定以下 URL 轉到建立檢視:**https://:63004/Employees/Create**

Localhost Employees Create

讓我們在這些欄位中輸入一些無效資料,然後單擊“建立”按鈕,如下面的螢幕截圖所示。

Enter Invalid Data

您將看到 jQuery 客戶端驗證檢測到錯誤,並且它還會顯示錯誤訊息。

廣告
© . All rights reserved.