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
元哥的筆記