- ASP.NET MVC 教程
- ASP.NET MVC - 首頁
- ASP.NET MVC - 概述
- ASP.NET MVC - 模式
- ASP.NET MVC - 環境設定
- ASP.NET MVC - 快速入門
- ASP.NET MVC - 生命週期
- ASP.NET MVC - 路由
- ASP.NET MVC - 控制器
- ASP.NET MVC - 操作
- ASP.NET MVC - 過濾器
- ASP.NET MVC - 選擇器
- ASP.NET MVC - 檢視
- ASP.NET MVC - 資料模型
- ASP.NET MVC - 輔助方法
- ASP.NET MVC - 模型繫結
- ASP.NET MVC - 資料庫
- ASP.NET MVC - 驗證
- ASP.NET MVC - 安全性
- ASP.NET MVC - 快取
- ASP.NET MVC - Razor
- ASP.NET MVC - 資料註解
- Nuget 包管理
- ASP.NET MVC - Web API
- ASP.NET MVC - 腳手架
- ASP.NET MVC - Bootstrap
- ASP.NET MVC - 單元測試
- ASP.NET MVC - 部署
- ASP.NET MVC - 自託管
- ASP.NET MVC 有用資源
- ASP.NET MVC - 快速指南
- ASP.NET MVC - 有用資源
- ASP.NET MVC - 討論
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),如下面的螢幕截圖所示。
為了在資料庫上設定此限制,我們將使用遷移來更新模式。
從“工具”→“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 轉到建立檢視:**https://:63004/Employees/Create**
讓我們在這些欄位中輸入一些無效資料,然後單擊“建立”按鈕,如下面的螢幕截圖所示。
您將看到 jQuery 客戶端驗證檢測到錯誤,並且它還會顯示錯誤訊息。