
這是一個基本的新增頁面,當我們為了防止使用者輸入錯誤的資訊,我們通常會做些機制來提醒使用者,那在MVC這邊怎麼做呢?
在預設情況下,其實就有先幫我們做好基本的型別驗證,例如上面DepartmentId應該輸入數字
因為我們在NewsCreateDto中宣告的型別是INT,因此如果我們在這格打上非數字,看看會怎樣

如上圖,會提醒我們應該輸入數字,而日期的部分則會顯示必填,這是因為這兩個欄位基本預設就不能為空值
但其實我們在標題跟內容也應該是必填,這時該怎麼做呢?我們可以加上這節要教的NET Core MVC內建的驗證標籤[Required]
using System.ComponentModel.DataAnnotations;
namespace Kcg.Dtos
{
public class NewsCreateDto
{
[Required]
public string Title { get; set; }
[Required]
public string Contents { get; set; }
public int DepartmentId { get; set; }
public DateTime StartDateTime { get; set; }
public DateTime EndDateTime { get; set; }
public List<IFormFile> Files { get; set; }
}
}
如此標題跟內容也多出了必填的提示,如下圖

有關其他的內建驗證可參考,官網
大家可以自己試一試,比較常用的像是[EmailAddress]驗證是否為信箱、電話、長度和範圍等等,都有內建,算是很方便
但這時候應該還會有個小問題,就是提示是英文的,我們怎麼改成中文或者是我們想要的敘述呢,也很簡單
[Required(ErrorMessage = "標題不可為空")]
public string Title { get; set; }
我們可以自行加上ErrorMessage的參數,就可以顯示我們想要的提示了

這節就先教內建的驗證標籤,但內建的絕對遠遠滿足不了五花八門的驗證,因此下一節會教如何自訂一個驗證標籤