在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ ASP.Net MVC驗(yàn)證
ASP.Net MVC簡(jiǎn)介
ASP.Net MVC過(guò)濾器
ASP.Net MVC視圖
ASP.Net MVC安全
ASP.Net MVC手腳架
ASP.Net MVC控制器
ASP.Net MVC與SQL Server數(shù)據(jù)庫(kù)操作
ASP.Net MVC NuGet包管理
ASP.Net MVC入門(mén)程序
ASP.Net MVC Razor
ASP.Net MVC Bootstrap
ASP.Net MVC單元測(cè)試
ASP.Net MVC動(dòng)作
ASP.Net MVC模式
ASP.Net MVC選擇器
ASP.Net MVC開(kāi)發(fā)環(huán)境配置
ASP.Net MVC生命周期
ASP.Net MVC模型綁定
ASP.Net MVC自托管(本地主機(jī)部署)
ASP.Net MVC驗(yàn)證
ASP.Net MVC緩存
ASP.Net MVC數(shù)據(jù)模型
ASP.Net MVC路由
ASP.Net MVC教程
ASP.Net MVC助手
ASP.Net MVC數(shù)據(jù)注解
ASP.Net MVC Web API

ASP.Net MVC驗(yàn)證

驗(yàn)證是ASP.NET MVC應(yīng)用程序中的一個(gè)重要方面。 它用于檢查用戶輸入是否有效。 ASP.NET MVC提供了一組易于使用的驗(yàn)證,同時(shí)也是檢查錯(cuò)誤并在必要時(shí)向用戶顯示消息的強(qiáng)大方法。

DRY

DRY代表(Don’t Repeat Yourself )不要重復(fù)自己,是ASP.NET MVC的核心設(shè)計(jì)原則之一。從開(kāi)發(fā)的角度來(lái)看,鼓勵(lì)只在一個(gè)地方指定功能或行為,然后在整個(gè)應(yīng)用程序中使用它。
這樣可以減少編寫(xiě)的代碼量,使代碼編寫(xiě)起來(lái)更容易,更容易維護(hù)。

為模型添加驗(yàn)證

下面來(lái)看看,如何為上一章項(xiàng)目添加員工時(shí)驗(yàn)證的一個(gè)簡(jiǎn)單例子。 在這個(gè)例子中,我們將數(shù)據(jù)注釋添加到模型類(lèi),它提供了一些內(nèi)置的驗(yàn)證屬性集,可以直接在應(yīng)用程序中應(yīng)用到任何模型類(lèi)或?qū)傩裕纾?code>Required,StringLengthRegularExpressionRange驗(yàn)證屬性。

它還包含格式化屬性,如DataType幫助格式化,不提供任何驗(yàn)證。 驗(yàn)證屬性指定要對(duì)其應(yīng)用的模型屬性強(qiáng)制執(zhí)行的行為。

RequiredMinimumLength屬性指示屬性必須具有值; 但是沒(méi)有任何東西阻止用戶輸入空白格來(lái)滿足這個(gè)驗(yàn)證。RegularExpression屬性用于限制可輸入的字符。

可以通過(guò)添加不同的注釋屬性來(lái)更新 Employee 類(lèi),如以下代碼所示 -



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

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

為了在數(shù)據(jù)庫(kù)上設(shè)置這個(gè)限制,我們將使用遷移來(lái)更新模式。

工具 -> NuGet程序包管理器 -> 程序包管理器控制臺(tái) 打開(kāi)程序包管理器控制臺(tái)窗口。

在軟件包管理器控制臺(tái)窗口中逐個(gè)輸入以下命令。

Enable-Migrations
add-migration DataAnnotations
update-database

以下是在 程序包管理器控制臺(tái) 窗口中執(zhí)行這些命令后的日志。

Visual Studio也將打開(kāi)從DbMIgration類(lèi)派生的類(lèi),可以在其中看到更新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字段的最大長(zhǎng)度為60,這是數(shù)據(jù)庫(kù)中新的長(zhǎng)度限制,如以下快照中所示 -

運(yùn)行此應(yīng)用程序并通過(guò)指定以下URL轉(zhuǎn)到創(chuàng)建視圖:http://localhost:63004/Employee/Create -

在這些字段中輸入一些無(wú)效的數(shù)據(jù),然后點(diǎn)擊 創(chuàng)建 按鈕,如下圖所示 -

看到j(luò)Query客戶端驗(yàn)證檢測(cè)到錯(cuò)誤,并且還顯示錯(cuò)誤消息。