ASP.NET MVC 入門系列(三) 查詢

ASP.NET MVC 入門系列(三)  查詢

Model Validate:常用驗證方式(補充ASP.NET Day2的部分)

[DisplayName]

定義顯示欄位名稱

[Required]

欄位必須輸入

[StringLength]

字串欄位最大長度

[Range]

定義數值欄位的範圍

[Compare]

比對另一個欄位是否一致

[RegularExpression]

正規表示法

[EmailAddress]

是否EMAIL驗證

[Url]

進行網址驗證

[FileExtension]

判斷副檔名

[CreditCard]

判斷信用卡號

[DataType]

判斷資料型態

[Remote]

透過Ajax方式送到指定的Action進行驗證

[Metadatatype]

使類別驗證符合至另一類別所定義

再論ASP.NET MVC架構

1.App_Data

存放資料庫的資料夾,EX:MDF,但是使用率不高

2.APP_Start

存放Web服務啟動時的(Global.asax/Application_Start)所註冊的功能

3.Content

存放CSS資料夾

4.Controller

存放Controoler資料夾,Controller檔名結尾一定要Controller,不然預設路由讀取不到

5.Filters

存放過濾器的資料夾,開發者可以自動過濾器。

6.image

存放圖片資料夾

7.Model

存放Model相關資訊:例如類別或是EntityFramework.edmx

8.Script

存放Javascript資料夾

9.View

存放View的資料夾。先由Controller的名稱來決定存放資料夾,在由Controller中的Action決定View的名稱。

建立正式第一支MVC應用程式

建立TestDB→table:message

CREATE TABLE [dbo].[message](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Title] [varchar](10) NULL,
	[Content] [varchar](100) NULL,
	[Time] [datetime] NULL,
 CONSTRAINT [PK_message] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

Model加入ADO.NET實體資料模型
建立名為一個Service資料夾
在MVC的Cotroller負責控制資料的傳遞方向,為了符合MVC的關注點分離,在開發MVC中的時候,將
Model處理資料庫和商業邏輯的Code片段獨立出一個Service資料夾供Cotroller使用。


加入messageController

分別index和create加入檢視

View的部份加入

MVC開發專案的時候,通常會以Model為第一步,讓Controller和View進行參考,Model負責資料
型態與資料存取以及ORM來進行技術開發,並直接與Model和ViewModel將同時多個Model串聯起來。

ViewModel:View只能與一個Model做繫結。

 

為了讓View有多個不同Model類別,可以建立一個類別即為ViewModel,ViewModel主要是
用來提供服務給View,其中可透過ViewModel將多個已建立Model繫結起來,將View與許多
Model繫結在一起,並透過此關係進行資料傳遞。註記:ViewModel不建議加入行為、但是
ViewModel可以進行驗證。

EX:登入

查詢應用範例:建立新的MVC範本→加入新的Cotroller(SuppliersController)→加入新的Model→針
對Suppliers加入新的EF→加入新的檢視Index(採用北風貿易資料庫)
在Model中加入SupplierViews


新增一個Service→新增類別→SuppliersDBService
修改Controller

在調整View

老E隨手寫