1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn tìm hiểu về ASP net MVC framework phát triển ứng dụng với ASP net MVC framework

108 628 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 1,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chuang 2 — CIIc thenh phin chinh cua ASP.NET MVC Chucmg nay se tim hieu chi tiet ve ck thinh phan chinh cita ASP.NET MVC, nhu la Controller, Model, View, URL, jQuery va met so van de ba

Trang 1

Dii di cif) gang het sire de dux hi4n de tai nhung kh6 tranh kh6i nhung thieu sot,

em rat mong titian dugc sir gap 9 cis qu9 thiy co, cac anh chi va cac ban a em co the tier b0 hen

Ha noi, ngizy 16 thtbtg 6 nom 2013 Sinh via thw hien

Deu Huy Hang

Trang 2/109

Trang 2

M1JC LI,IC

1.4.4 MOt s6 tinh rang n6i 1* cna ASP.NET MVC Framework 17

Trang 3/109

Trang 3

2.2.1 Khasi niem ViewEngine 45

3.1.3 Su dO use-case chfrc &mg caa he thong 86

Trang 4/109

Trang 4

KET LUAN 108

Trang 5/109

Trang 5

DANH MVC CAC THUAT NG& VA TIT VIT TAT

May chit

MA lenh Kh6ng gian ten Trinh duy6t Nen tang

BO 19c Xic nhin Model View Controller

Co so dii li6u HyperText Markup Language HyperText Transfer Protocol

Trang 6/109

Trang 6

DANH MDC HINH ANH

Hinh 1.2 Quy trinh hogt dung ctia mo hinh MVC 12

Hinh 1.4 Cie thanh phdn co ban &la ASP.NET MVC 16

Hinh 1.8 Minh hpa mot Solution Explorer ctia ASP.1VET MVC3 22

Hinh 1.9 Giao Bien co ban khi chgy Ong thing ASP.NET MVC ca Ian 23

Hinh 1.10 Giao dien thy chink thay dal churmg trinh trong khi Debug 24

Binh 1.11 Kit not cash die' lieu bang Entity Framework — boot 1 24

Hinh 1.12 Kit nil ca set die lieu bang Entity Framework — bleat 2 25

Plink 1.13 Kit not co sb &I lieu bang Entity Framework — bulk 3 25

Hinh 1.14 Kit not co sas dir lieu bang Entity Framework — burry 4 26

Hinh 1.15 Kit nii co set die lieu bang Entity Framework — burry 5 27

Hinh 1.16 Kit co so die lieu bang Entity Framework— buoy 6 27

Rink 1.17 Minh km them mai met Controller -1 28

Hinh 1.18 Minh hoe them mai mot Controller - 2 28

Hinh 1.19 Minh hoe them mai mot Controller - 3 29

Hinh 1.20 Minh hpa them mai mot Controller - 4 30

Hinh 2.1 Minh hpa tgo mat lnline HTML helper 48

Trang 7/109

Trang 7

Hinh 2.3 Tao mat Partial View 60

Hinh 16 Danh such cut nha nazi ban trong he thong 106

Hinh 3.7 Giao dien chinh situ thong tin ve nha xuat ban 107

Trang 8/109

Trang 8

GICTI THIOU CHUNG Tnr6c day khi thiet ke min website, nhang ngtrai mai tim hieu s8 phai ton rat nhieu ding sac de hoc, nghien dm, vi hp se mat mot khoing thin gian kh6ng rthe de twin thinh website yen day dit cac tinh ding Sau da, ho can bo ra rat nhieu cong sac chay chit cling nhu sira 18i, khic phuc cac van de bao mot_ va cu6i cuing sin pham hp lam ra cling chua chic "sfinh vai" 81:cc v6i cac sin phial ra dfri truerc do Nam bat duqc dieu nay, Microsoft da cung cap mot nen tang phat then ling dung web nham ginp ich cho ngulyi sir dung, do lit ASP.NET

ASP.NET MVC la met trong taming mo hinh duqc cung cap beri ASP.NET NO duqc xay dung theo m8 hinh MVC (Models, Views va Controllers), gulp Lich biet cac thinh phan trong ling dung Val me hinh nay, nhang lap trinh vien co the a ding xay dung nhang website von cAu truc chat che, rinh mach Ngoai ra, no cling giop cho viec sira 18i, thay the vi thin nghiem cac chic nang ctia website tra nen a ding horn

Veri nhiing tru diem tren, ASP.NET MVC gin rthir se tra thanh met nen tang chinh trong viec xay dung va phat trien cac website Vi vay, trong lchoa luan Mt nghiep nay, em

se tim hieu ve cong nghe ASP.NET MVC Framework caa Microsoft va xay dung melt ling dung dua tren ding nghe nay

Myc dich nghien ct?u tali kh6a ken:

- Tim Mau ve met cong nghe mai;

- Phuc vu cho viec xay dung mot website giai thieu vi dat hang sach, nhim lip dung nhftng kien tit da duqc tim hieu vao thuc te;

- Clung cap met tai lieu Tieng Viet ve cong nghe nay

Phtrong phip nghien coy:

Nghien cuu 15, thuyet th8ng qua ebook dui Microsoft va the then din;

- Tang buck tim hieu cac vi du ca ban, sau do lip dung vao met ling dung nho, din din phat trien thinh met chuang trinh;

- Ring hop cac kien thac thinh bio cao va xay dung chuang trinh Ling dung

Trang 9/109

Trang 9

Nei dung dm tai lieu duce chia lam 3 chtrang

Chuang 1 — Tong quan ve ASP.NET MVC FRAMEWORK

Chuang nay se gioi thieu ve m6 hinh MVC cling nhu dtra ra cai nhin tong quat ve ASP.NET MVC

Chuang 2 — CIIc thenh phin chinh cua ASP.NET MVC

Chucmg nay se tim hieu chi tiet ve ck thinh phan chinh cita ASP.NET MVC, nhu la Controller, Model, View, URL, jQuery va met so van de bao mat tong ASP.NET MVC

Chuang 3 — Chuang trinh inng dung

Nei dung chuong nay la giai thieu ve trig dung duce xay dung dua tren cling nghe ASP.NET MVC U'ng citmg de la met website cita dra hang sach yea Unit nang quan 19, giai thieu san phim va (tat hang truc tuy'en

Trang 10/109

Trang 10

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

CHIMING 1 - TONG QUAN V ASP.NET MVC FRAMEWORK

1.1 Gitri thi$u ye m8 hinh MVC

Khi cic phin mem img dung ngay cang phit then km mph vi da clang thi vin de thiit lei hen tnic cho phin mem cling tr6 n6n phiic tap hon Nhung ung dung web gig day cling da phit trien din met tam cao mei, ching kh8ng can la nhOng (mg dung web thing thirang yeti chirc nang hiin thj thong tin ma la nherng hi dicing thong tin he trq nhung trang web tucmg tic yeti ngubi ding Nhieu giai phap thiet lea kien frac hi thong duqc dua

ra vat aux dich lam cho hi tilting linh hog, mem deo, de phit then vi ton to lau dii Trong de, giai phip this& ke theo m8 hinh kien true MVC duqc Trygve Reenskaug de xuAt vao nhOng am 70 coa the ky 20 to ra rat hieu qua

Mo hinh MVC (Model - View - Controller) la met kien trite phin mem hay mo hinh thiitke dirge sir dung trong ky thuat phtm mem N6 glop cho cic nha phit then tech img dung cila hq ra thanh 3 pill lchic nhau Model, View va Controller mOi thanh phin c6 met nhiim vu ring biit va dije lap vei cic thanh phin khic

1.1.1 Cac thenh phin ctia MVC

Trang 11

1.1.2 Hoot dung cart ma hinh MVC

Day la mist each dan giin de m8 to lei luting su kien duce xit ljr trong MVC:

- User twang tic yeti View, bang each click vim button, user gui yeti cku di

- Controller nhOn va dieu huong chimg den dung phuang thirc zit l5r er Model

- Model nhan thong tin vi thvc thi cac you au

- 'Chi Model hoan tat viec zit ljr, View se nhon &I lieu tir Model vi Controller se phin hhi lai ngtroi dung

Trang 12

Chtrcmg 1- Togng quan ye ASP.NET MVC FRAMEWORK

1.1.3 U'u diem va niurqc diem ala MVC

1.2 Giafri thieu ye ASP.NET

ASP.NET Ia mOt nen tang phat trien (mg dung web (web application framework) &roc phat trien va cung cap ben Microsoft, cho phep nherng ngutii lap trinh to ra nhitng hang web ding, nhOng img dung web va nhOng dich vu web Lin diu tien &roc dim ra thj throng vito thang 2 nAm 2002 cimg v6i phien ban 1.0 ciut NET framework, la ding nghe nen tiep ctia Microsoft Active Server Pages(ASP) ASP.NET ducc bien dich duel clang Common Language Runtime (CLR), cho phIp nhang win lop trinh vitt ma ASP.NET yeti bit kk ngon ng0 nao duqc ho try bei NET language

1.3 ASP.NET WebForm truyen thong

ASP.NET la mOt buec nhay vot khi lin diu )(Wit hien, nhim thu hop khoang cach gifta pith trien Window Form Wong di ft:mg (cd thing thai) va phat trien web hueng HTML (Ichting tang thai) Hinh duel day munh boa cong nghe ASP.NET Webform

Hinh 1.3 Cling nghg ASP.NET WebForm

Trang 13/109

Trang 13

Chuang 1- Thng quan ASP.NET MVC FRAMEWORK

V6i Web Forms, Microsoft da c6 in di HTTP vi HTML bang cach me phong giao dien nguiri ding nhtr la met doi mow dieu lchien (Control) ce cau tnic hoot deng phia Server Mill di Wong dieu khien (Control) theo doi tang thai cim no thong qua cac you au (sir dung tinh ring ViewState), bieu dien bang cric ma HTML !chi can thief Ngoai ra, no con to Ong kit not cac so kien phia Client (nhu so kien bem button) ten cac so kien phut Server

duqc xu ly ttrcrng img Thoc te, Web Forms 11 met 16p trim tucmg khOng to duqc thiet ke de cung alp giao clien ce xir ly so kien thong qua Web

NhOng diem Imut chi cast ASP.NET Web Forms

ASP.NET Web Forms truyin thing tong la met y mow rat tit, nhtrng thou te lei phit sinh nhOng dieu phim tip khic Theo thin gian, viec sir dung ASP.NET Web Forms

da nou WI len met so thieu set;

- ViewState: Co the duy tri trang thiti thong qua cac yeti tau (request) thutmg mang lui

ket qua la nheng IchOi luqng 16n da lieu duqc chuyen giao giOa client vi server Da lieu nay c6 the len den hang tram Kbs b met img dung web vira phai, vi n6 di qua lei v6i bit ky yeu cau nito Dieu nay lam ch * di died gian ch6 /bin hoi vi lam ding nhu cau bang thong dm server;

Page life cycle (Chu k9 ton tai ciut met trang web): Lit co the ket not sjr kien phia client veil mA xir 19 so kien phia server NO phfrc tap vi a bj pha ver;

thirc sai ve viec tech biet cac thinh phen: M8 hinh code-behind cita ASP.NET cung cap met gisi phip cho phep img dung due code ra khei cac clang HTML vio thanh met 16p code-behind net:1g biet Dieu nay duqc hoan nghenh reng rai yeti viec tech biet giao dien veri mA )(Cr ly Nlumg thou te, nhOng nha phat trier duqc khuyen khich pha ten mA giao dien veri mA )(Cr 11 img dung (nhu la xir ly CSDL) tong nhfmg 16p code- behind khOng 16 Neu khong c6 so tech biet gift cac thinh phin, ket qua cuoi cling c6 the nit kh6 hieu;

Limited control over HTML (gidd Mtn kiem spat HTML): Server control to to ra cat

mA HTML, nhtmg khang phai la mA HTML ma to mong dqi Ngoii viec mA HTML min chfing thutmg khong than theo lieu chuin web hoes khong sir dung tot CSS ma he

Trang 14/109

Trang 14

Chuang 1- T6ng quan ye ASP.NET MVC FRAMEWORK

thong cac server control can tao ra cat gia tri ID phirc tap vi khong down truer duqc, lim kho khan trong viec sir dung JavaScript;

KM ming lciem thir thap: Cac nhit thiet ke caa ASP.NET khOng the du down ring Idem thir to gang se tra thank met phan tat yeu caa xu htrong phat then phan mem Kh8ng ngac nhien khi kien tnic chat the ma ho thiet ke la 'thong pha hqp vai viec tich hqp Ici'em thir

ASP.NET van tip tuc phat trien Phien bin 2.0 them mat thanh phan chuan de giiun bat

se luqng code ma chimg to can phiti to viet Vai phien ban gan nhit ASP.NET 4.5, mui thir

da duqc ming cep &mg ke Phien ban ASP.NET 4.5 di ap dung met se tinh ming dm ASP.NET MVC vie Web Forms Tuy vay, van can met han the ten to ben trong no

1.4 ASP.NET MVC Framework

Nhu da giai thieu et Olin truck, ma hinh MVC vai uu diem cam minh di duce img dung trong met se alc framework Trong do pluii ke den ASP.NET MVC, met framework ma nguen ma mai, xay dung tren ASP.NET

ASP.NET MVC Framework duqc thvc thi tree me hinh model—view controller (MVC)

NO gun nhg, de Bang kiem thir phan giao dien, tich hqp cat tinh ming cira ASP.NET MVC Framework duqc djnh nghTa trong namespace System.Web.Mvc va la met Olt cim Ichong gian ten System.Web

1.4.1 NguBn goc

Tuy ding nghe ASP.NET MVC mai duqc ph& trien nhung no co ljch sir lau deri Nen tang MVC duqc phat minh bai Trygve Renskaug, Ong di viet tang giay dau den not ve MVC vio nem 1978 Ban du no duqc gui la Thing Model View Editor pattern, nhung sau

de no ductc dot ten i i li Model View Controller pattern

ASP.NET MVC lan du lien St Men d6 la trong du an me ngtdin ma MonoRail

Nguen gac that sir de cho ra deri ding nghe Microsoft ASP.NET MVC li do Scott Guthrie (met trong nhOng nha sang tao m ASP.NET ) tren chuyen bay den Austin, Texas de not ve hOi thao Alt.NET vao thing 10-2007

Phien bin ASP.NET MVC 1.0 duqc m dbi vio nam 2009

Trang 15/109

Trang 15

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

1.4.2 Cic think phan cabin ctia ASP.NET MVC

ASP.NET MVC Framework

Binh 1.4 Ceic thank phan ca ban ciia ASP.NET MVC

Models: Cac tirgng Models li mOt phan ciia ling dung, cac di tucmg nay thiet 1#p logic cila pit dO lieu cna ling dung Meng thuimg, tic tugng model lay vi luu tang thai cita model trong CSDL Vi dp nhu, mOt doi Meng Product (sin pan) se lay MI lieu tit CSDL, than tic tree dit lieu va se c#p nh#t de lieu ter lin vao bang Products 6 SQL Server Views: Views la cac thinh phan ding di hien thj giao dien ngubi dung (UI) Thong thubng, view duet tio dun vio thong tin dfr lieu Models Vi dp nhu, view dung di c#3 nh#t bang Products se hien thj cac hQp van ban, drop-down list, vi cac check box data tren trpg thai hien nu cua mOt di Wong Product

Controllers: Controller la cac thanh phan dung de quan ly Luang the ngubi dung, lam

viec vei model vi chip view di hien thj giao dien ngtrei ding Trong mOt Ong dung MVC, view chi dirgc dung cie hien thj thong tin, controller chju trach nhiem quan ly va dap tra nOi dung do ngtrbi dimg nhop vi tuang tac vai ngubi climg Vi du, controller se quan ly cac clu lieu ngubi dung girl len (query-string values) vi gui cac gia trj de den model, model se lay chl lieu tit CSDL nhe viz cac gia tri nay

MO hinh MVC glop Chung to duet cac Ong dung ma chting phan tack rich red cat khia earth c»a Ong dung (logic ye nh#p lieu, logic xu lY tic vu va logic ye giao dien) MO hinh MVC chi ra min loni logic ke teen nen duet thiep li) 6 dau teen Ong dung Logic giao dien

(UI logic) thuOc ve views Logic nhtep lieu (input logic) thuoc ve controller Va logic the vp (Business logic — la logic xir ly th8ng tin, muc dick chinh cua ung dung) thuOc ve model Sir phan chia nay giim chang to giim bat dugc sir phirc tip cita Ong dung va chi top twig vac

Trang 16/109

Trang 16

Chuang 1- Tag quan ye ASP.NET MVC FRAMEWORK

mOi khia canh can duce cai d#t a m8i that diem Vi du nhtz chting to chi can top trung vito giao Bien (views) ma khong phai quan tam den logic xer 1S, thong tin elm ling dung

Su phan tach rach reit ba thanh phan cita img dung MVC can gitip cho viec 1#p trinh dies ra song song Vi du nhu mQt 1#p trinh vien lam tee vei view, 1#p trinh vien thti hai

lo cii dot logic ciut controller va lop trinh vien thir ba c6 the top trung vio logic the vu cia model tai cling met thai diem

1.4.3 Qua trinh host dung ctia mOt (rug Mpg ASP.NET MVC

Cac giai doan thuc hien dui met ling dung ASP.NET MVC duce trinh bay duei day: NhiIn you eau dau den: Trong file Global.asax, cac doi tuqng Route duce them Arlo RouteTable;

- Thuc hien viec djnh tuyen: Module UrlRoutingTable sir dung di tuqng Route dau tien thich hqp trong top RouteTable de tao tuqng RouteData DOi ttrong nay sau

do lai tao ra doi tuqng RequestContext (ifittpContext);

- To ra trinh xir ly yeu eau ling dung: Doi tuqng MvcRouteHandler tao ra met the hien ctia 16p MvcHandler va truyen vao no the hien RequestContext;

To ra controller Cie dOi tuqng MvcHandler sir dung the hien cita RequestContext

de Lie djnh dig tuqng IcontrollerFactory qua d6 tao ra the hien controller;

- Thur hien vai tr6 cis controller: The hien MvcHandler gui phuong thirc Execute cita controller;

- Goi action method: DOi tuqng ControllerActionInvoker se xac djnh action method cur met 16p controller de ggi ra

1.4.4 MOt so tfnh nang ndl bOt cem ASP.NET MVC Framework

Tach bath cic tic vu cita ling dung

- C6 kha nang ma rQng (extensible) & kha Hong nhimg (pluggable) Cie thanh phan ctia ASP.NET MVC duqc thiet ke de chting co the duce thay the hoc thy chink met cach

a ding

- ASP.NET MVC c6 thanh phan inh xa URL manh me, cho ph6p cluing to may dung nhang ling dung c6 cac dia chi URL xtic tich va de tim kiem Cac dja chi URL IchOng

Trang 17/109

Trang 17

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

can phai c6 pan mer rang cita ten tap tin va duqc thiet ki de hO trq cac mau djnh clang ten phu hqp vei viec toi uu hoa tim kiem (URL)

Hg trq cac tinh 'tang c6 sin ctia ASP.NET nhu ca the zee thus ngteri dimg, quan thenh vien, quyen, output caching va data caching, seession va profile, quan ly tinh tang img dung, he thong cau hinh

- ASP.NET MVC 3 con be sung met view engine mei la Razor View Engine cho phep thiet lap cac view nhanh cheng, de ding va ton it ding sec han so vei vies sir dung Web Forms View Engine

1.4.3 U'u diem

- De ding quan ly su phirc tap cua img dung bang cacti chic img dung thank ba thinh phan model, view, controller

- HO trq tot han cho mo hinh phit then ung dung butt:1g Itiem thin

- He thOng djnh tuyen mash me

HO trq tot cho cac img dung duct ay dung bei nhfrng dill co nhieu lip trinh vien vi thiet ke ma yin quan ly dime tinh &mg dui img dung

- HO trq nhfing tinh nang tat nhat de c6 6 ASP.NET

1.4.6 Niurcrc diem

- Kh8ng Wong den su lden lam cho cac nhi phat trien ASP.NET webfonn ldt6 khan

- Yeu cAu c6 hieu biet ve HTTP, HTML, CSS va JavaScript

1.4.7 So sal* gigra ASP.NET webform vi ASP.NET MVC

Minh 1.5 ASP.NET WebForm va ASP.NET MVC

Trang 18/109

Trang 18

Chuang 1- Tong quan vg ASP.NET MVC FRAMEWORK

.Net Framework: 118 trq clic loo img dung nhu desktop, web va cac img dung console ASP.NET framework la met phin cha NET framework, duct xay dung nhirn 118 trq cac Ung dung Web (caching, authentication va authorization)

Trong di, Microsoft co 2 luremg phat trier web ten nen ASP.NET la ASP.NET Webforms va ASP.NET MVC Muc dich ra dbi cita ASP.NET MVC chi la su thay dei ye mit to duy, no khetng hoan town thay the cho cO img dung ASP.NET Web Forms, va viec chcm huing nao de &Ay dung met website la thy thuk vao cac nha phat trier

Su khac bier gifta 2 Wong phat trien nay dirge the hien dual bang sau

ICien tnic chuong trinh Kien frac me hinh

WebFotm > Business >

Database

Kien tnic sir dung viec phin chic chtrong trinh thanh Controllers, Models, Views

Cu phap chuang trinh Sir dung cu phip cita

webrom, eat cac su kien va controls do server quan 19

Cac str kien duqc dieu khitn b61 controllers, cac controls khong do server quan 19

Troy cip du lieu Sir dung hiu het cac tong

nghe fly cip de lieu trong Ung dung

Phan lin dung LINQ to SQL class

de tao me hinh tray cep dei urging

thuc hien tit ca bao gom the lap truy 4p de lieu, sum hien thj, dieu lchien cac controls/

Debug c6 the sti dung cac unit test kiem tra cac phircmg thirc trong controller

Ttic de phan tai TOG de chin MU trong

trang co qui Situ cac controls vl ViewState qui lon

Phan tai nhanh han

Tuang tic veri

javascript

Trang 19/109

Trang 19

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

URL Address au tine dia chi URL c6

dung <filename>

.aspx?&<cIc tham s3>

Cau tnic dia chi Sob much theo dung Controllers/Action/ID

1.4.8 Lim quen v61 (mg Eking ASP.NET MVC Framework

IM61 tgo mOt Gig dpiw MVC

Trong bO pan mainVisual Studio 2010 &I co sin ASP.NET MVC Framework, to tao

mOt du ga mbi then dubng din sau: File > New Project > Visual C# > Web > ASP.NET

Typo Veal Ca

A reject Ice aseffiej as appraise Sig ASPIC WIC 3

was Ca red Ca VINSON Vaud Ca Veal Oa was cc

Keel OP was Cl

Hinh 1.6 Khoi too sing Ming ASP.NET MVC

Trang 20/109

Trang 20

Chuang 1- T6ng quan ve ASP.NET MVC FRAMEWORK

Sau khi bam OK, hOp thooi New ASP.NET MVC3 hien re

am& apairiltnisfas

Er Um MIMS walk sash

El Oen alma praint

Tett project maw

liktklorrw.Tests

Test framework

Votsal Strap Unit Test - ANOn,l so

Minh 1.7 If(ip thogi New ASP.NET MVC3

Chting ta co the chon kieu template la Empty, Internet Application ho$c Intranet Application

Empty se tao ra nhOng thu mut vi t$p tin tei thieu cho an,g dung MVC3

Internet Application se tao Ira mot img din co 86 tram; m#c dinh, chiing taco the sirs dei

vi airy dung tren n6

- Tay chon Intranet Application tang tuong to nhu Internet Application, nhung &roc can

filth stn de stl dung trong moi truerng 7LiC than; ngubi clung thong qua ha tang Domain/

Active Directory

Chung ta tang co the tao project test tong veil Ong dung MVC tir cling mot oh ses

Ben canh 46, ta tang co the chon chi 40 ViewEngine 11 ASPX ho#c Razor

(3 day, ta chip Internet Application, Razor ViewEngine vi khong chon unit test project

Beni OK de hoitn tit

Trang 21/109

Trang 21

Chuang 1- Tang quan ye ASP.NET MVC FRAMEWORK

Solution Explorer se hien m nhu sau:

g Solution "Avalcreies a moo

Hinh 1.8 Minh hpa mot Solution Explorer cua ASP.NET MVC3

Bing duel day me ta nei dung throng dlin mkt met du an MVC Internet Apllication

/App Data LAM tit &it lieu dm (mg dung Chung ta co the them met

CSDL SQL vio thu mkt nly

/Content Li thu mix throng chits nheng de lieu tlnh, nhu 11 hinh

anh, tep tin css,

Visual Web Developer al dOng them thu mac Themes vio trong Content Thu nut themes 11 thu num chira cac tep Jquery vi hinh anh Trong du an nay ta co the iroa thu mac themes

Visual Web Developer rang them 1 file CSS chuim vio du

an ten lit Site.css trong thu mix Content File CSS la file de mks khi ta muon they doi style caa (mg dung

/Controllers Chita cac lop controller oft chirc Wing nhijn Sc yeu au caa

ngtrbi ding vi phis holi lai

MVC yen ciu ten cast tit ca cac file controller ket thee

'Prang 22/109

Trang 22

re 0111•••1 1 * •

My MVC Application

Welcome to AWAIT MVO

To Wen Men tout 451 , ,MT MK wok tramaliat

Chuang 1 - Tong quan ye ASP.NET MVC FRAMEWORK

bing the "Controller"

/Models Gam de lop di chin cic mi birth d6i ttryng cia ling dung

Models quin 1ST vi thao tic voi di lieu

/Views Litu tit cic file HTML lien quan ten viec hien dil cost ting

dung (giao then Wen ding)

Thu muc Views chits Wang ting mai thu mqc cho n*

controller

Mic djnh trong thu muc View co 1 thu muc Shared ding

de chia se Si nguyen gitta Sc controller

/Scripts Thu muc Script hru tilt Sc file Java Script Gila ling ding

Mic djnh Visual Web Developer se 4t thu mpc niy lem chuitn de chits cic file Jquery File "modernize' li file Javascript de ha trq HTML5 vi CSS3

filch vd chgy V6i viec Iva chip Internet Application fru* de, ling dung eta chting ta di c6 dui

chirc Ming ca bin Ching ta chtty thfr bing cich bim F5 vi kit qui nhtr sau

Hinh 1.9 Giao diets co ban khi chuy sing dyng ASP.NET MVC cti san

De dimg chuang trinh, ta t6 hip phim Shift + F5 ho$c chip Debug Menu vi chip Stop Debugging

Neu muon thvc hien that' dal trong khi Debug thi ta chin Tools > Option, sau 46:

Trang 23/109

Trang 23

Chuang 1- T6ng quan ye ASP.NET MVC FRAMEWORK

relt and Coto

6 a bale follt arikaulimen

Iteiarroq eplies This ineMe ague Et end Colima

R] invoked by debug coeraniwids

ri Ask find

1•Vam about dale code

EL': Rank code chimes As debugging Li) Now pecanwiling

r,, Enable Stile debugging an appbcation running wider another user account

Hink 1.10 Giao diet, thy chink May ddt throng Binh tong khi Debug

1.4.8.3 Kit a 1 cash dfr Wu SQL Server bibsti Entity Framework

ADO.NET Entity Framework II met nen tang dtrqc sar dung de lam viec win CSDL

Chung ta co the troy win, than tic voi database gain dip thong qua tic dui tircmg trinh

Chang ta se kit not CSDL bang Entity Framework Database First No se tin den;

two ra data model va ate lap cho chung ta tit met CSDL co sin Day la met cich dip can

phO bien vi no thvc hien don giin, nhanh chong

Trong eaia so Solution click chuOt phii chip Add > New Item

I-finh 1.11 Katcosh di? ligu bang Entity Framework — hair 1

Tsang 24/109

Trang 24

Genealetlhe modd ban a abbot Qs we paled tea the wadi an the pqect• avid

Ibis wield Slams nay*, delalscoameclisa ad diele aptly Wok Mlle rt

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

Tiep theo, chon ADaNET Entity Data Model balm Add

nabs

a "Wire yfraTRs

Wall OP

%SOP Vaud Cs

%LS Or

rasa

rasa rasa

Rink1.12 Kilt nth cash die liOu being Entity Framework— by& 2

Criao diein hien ra tint beln du6i, bilm Next

1,/ Dia

111.thiCalimb

VIStasold Onsald met

Minh 1.13 left ca sb dit li4u bang Entity Framework— butk 3

Trang 25/109

Trang 25

Chuang 1- T6ng quan ASP.NET MVC FRAMEWORK

Enter infommtion to connect to the selected data source or cick "Change to

choose a different data source and/or provider

Log on to the sever

© Use Windows Authetiotion

# Use SQL Saw

Authentication User name sa

Trang 26

Muria ingubriepreslidaljel alas

g Include kw, log eigums

Mil Pampa

ininisynuas

Chiron 1- Tang quan ye ASP.NET MVC FRAMEWORK

Tiep then, ta chtx Next

soy Del•

alp alma The Dub Canincinn

laid dab amecienalonill par masts a In ant Is Ihn

That mosses steins ippon Is contain swim deb for nap% • swelint is sap:St

connect WS Sam Amin new deb s Sr eases tire as IN Ns* St Doss von

to 'Muds this smiling tign in dis oarencion ryr

() lb and into deintsse the mannafi+Isluti in my Appicalist ads

indialn the nvailive Sin in M comndion liy

Hinh 1.15 Kit not cosh chi lieu bitng Entity Framework— burk 5

Cuii cone, ta barn Finish di boon thanh viec kit not toi CSDL tit SQL Server

invorntsult.e

Hinh 1.16 Kb nil CCI set dfr lieu being Entity Frwnework— buOr 6

'Prang 27/109

Trang 27

Chuang 1- Tong quan ve ASP.NET MVC FRAMEWORK

1.424 Thim mal mft Controller

Bey gib chimg to se them met controller cho du in

Trong Solution Explorer, click phiti chuOt tren Toler Controllers vi chon Add >

Controller

Hinh 1.17 Minh hoa thin: tneri :wit Controller -1

Ta at ten Li "HelloWoridController", chun Emty controller trong Template va click OK

Trang 28

Saints ') rj Vim

g o l Globs: sax Web.config

giokeioni-

public ActionResult Index()

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

Trong foler Controllers, chting dA co file v(ra duoc to vai ten HelloWorldController.cs Noi dung coa file nhu sau:

Solutionhpbeer "' 4 X iiMvcMovie.Conuollers.HeloWoo ',Untie)

Hinh 1.19 Mirth boa then miti mot Controller - 3

Ben bong Si public class HelloWorldController, Mo hai phuong thirc có code nhu ben ben

&Mi Controller se travE mat HTML

public string Welcome()

return "This is the Welcome action method ";

}

'tram 29/109

Trang 29

Chuang 1- Tong quan ve ASP.NET MVC FRAMEWORK

Ta chay ung dung (nhim F5 hoc Ctrl+F5) Trong trinh duyet them "HelloWorld" vio daring thin dja chi tree thanh address Ket qui 11:

Rink 1.20 Minh hpa them mat mot Controller - 4

1.4 85 Thim m61 mr View

Thong thubng chting ta khemg muon controller trit ye truc tiep HTML, vi diau nay lim cho code care clueing ta trb nen roam S Thay vio d6 thong ta se dung file view template rieng biet de to HTML

Ta se dieu chink class HelloWorldController de sir dung file view template (ding

de to HTML tri ve cho client)

Tnrac tient ta thay doi phuong thec Index de tri ve mOt dOi Mang View nhu sau: public ActionResult Index()

{

return Via();

}

Chung ta se to mot view template sir dung cho phuang thee Index bang tech click

chuOt phai vio phuong thirc Index chon Add View

Trattg 30/109

Trang 30

Una *mut at memes

asornmply VI it sel in lias_viessiNted

ontentPlaceboider Iti

MinCartent

Chuang 1- T6ng quan ye ASP.NET MVC FRAMEWORK

{

public class lioweController : Con;{ Addvers

public ActionResult Index() /21 GoToinew

Matador return View();

GesteUMTens-

Binh 1.21 Minh hpa them moi tnot View -1

Hop tho?i Add View met hien, to de mOc djnh vh click Add

Binh 1.22 Minh hpa thim maxi m(g Hew - 2

Trong Solution Explorer, file Index.cshtml di duct tno ra tong duang dan

Trang 31

My MVC Application

Home

Index

Hello from our View Template!

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

Nfii dung ala file Index.cshtml vita duqc tso

<p>Hello from our View Templatelqp

Chu chuang trinh ye duet kit qua nhu saw

Huth 1.24 Minh hpa thin Si mot View - 4

Trang 32/109

Trang 32

Chuang 1- Tong quan ye ASP.NET MVC FRAMEWORK

1.4.8.6 Them mot Model

Trong solution explorer, click phiti chuOt tree thu mac Models, Chan Add, vi sau do Chan Class

alkx

AMMIJET MIS o 4b ow Cni•C

flush 1.25 Minh km thins mai moat Model

Sau dd, ta dit ten cho class va him OK de holm tit

Nhu v$y, chting ta di co ban nim &roc cach tao mOt du in MVC, tech bien djch vi chay chuong trinh Ben canh 116, cluing ta rung di tim hieu so qua ve cich them oic controller, view va model vio tong da an

D A Caren

D Cortrolins

Pa

• Z ausa kallacet mixing

Trang 33/109

Trang 33

Chuang 2 - Cac thanh phan chfnh caa ASP.NET MVC

CHIMING 2 - CAC THANH PHAN CHINH CiJA ASP.NET MVC

ControllerBase la lerp co bin dm controller NO cung cep cach xir ly MCV noi chung Cac lop ice thin tir ControllerBase dirge mac djnh thuc hien cac tinh chat cia met controller

Lop Controller co nhOng vai tre sau:

- Dinh vi action method thich hop de goi vi xic Stan rang action method de co the dugc gqi tai;

Nhan cac gia trj la tham so cim action method;

Xt'r ly tat ca cac lei c6 the xiy ra trong qua trinh thuc hien cac action method;

Cung cep 16p WebForm ViewEngine mac djnh de' dua ra cac View

2.1.1 Cie 167 chinh cilia Controller

Action methods: Mei action method ling veri met dja chi URL phan biet va dirge goi

ra vai cac tham s8 dirge ley tir you eau

- Action results: Action method tra ye the hien dm met lop dugc dan xuat tir

ActionResult Lop ActionResult li nen tang cho moi ket qui dugc tit ire (VD: Tra ire met View, clan xuet den met Action method khic ) Viec tach bach giaa xac

djnh ket quA va thuc thi se don gian h6a vice kiem thir met each ding ke

- Filters: Chung to co the gei gin cac hank vi tai sir ding dugc thinh N loc, sau do dinh harth vi d6 vio met hocnhieu Controller hoac Action method bang cach Qat [Attribute] vio trong ma nguen

Trang 34/109

Trang 34

Chwmg 2 - Cac thanh phIn chinh nia ASP.NET MVC

2.1.2 Action Method

Thuang la su anh xa 1-1 di veri twang tac cita nguai dung Vi du ngueri dung twang tac voi trang web bing viec giri met dja chi URL, click vao met dui:mg link, hay xic than met form MOi hanh di:mg do deu girl met yeu cau den Server 6 mot twang hqp, cac you cau nay trong NET MVC deu gqi met action method twang (mg

MOt controller co the chira nhieu action method ma no can

Khi ngtrai dung thut hien met yeu cau URL den hang web tren nen NET MVC thi may chit se thut hien chuyen huerng URL theo cac lust di duqc quy djnh trong file Global.asax de tien hanh phin tich chuoi URL va quyet dinh sd xir 12 a Controller nao Sau d6 Controller se quyet dinh gqi Action method nao de xir 12 yeu cau

Khi ngutri dung nh$p URL vao trinh duyet, img dung MVC se sir dung cac quy tic djnh tuyen duqc dinh nghia trong file Global.asax de phfin tich cac URL va XiC dinh duemg di cita controller Sau do, controller xac djnh action method thich hqp de xir 12 cac yeti au Theo mac dinh, URL cita met yeu au duce coi nhu la nhu men throng din Au bao gam cac ten controller nil den ten hanh gang (action) Vi du, neu ngtreri dung nhap vao URL la:

http://sunflower.com/MyWebSite/products/Categories

Nguyen tic djnh tuyen mac djnh coi "Products" img veri ProductsController N6 coi

"Categories" la ten ctia action method Vi voy, action method "Categories" cita ProductController se duqc gqi de xi! 12 yeu cau Neu URL kelt thfic bing /Products/Detail/5, thi nguyen tic djnh tuyen mac djnh se gqi action method Detail els ProductController de xir 12 you cau Theo mac djnh, gia tri "5" trong URL duqc coi nhu la tham so cim action method Detail

Trang 35/109

Trang 35

Chuang 2 - Cac thanh phln chinh caa ASP.NET MVC

Vi du ve met 16p controller c6 chin action method Helloworld:

public class NyController : Controller

2.1.3 Cac kEt qui tri ve kigu ActionResult

Cac ket qua tri ve tir action method deu ke thin tir 16p ActionResult Tuy nhien, c6 nhieu loai tra ve khic nhau, tiny thuec vao nhiem vg ma cac action method thin hien Trong de, ph6 hien nhat 11 View method View method tri ve met the hien dm 16p ViewResult, c6 nguon gac tir ActionResult

Bang duel day het ke cac loai ActionResult :

Tri ve met vung caa trang web

RedirectResult Redirect Chu yen' Song ve 1 trang web !chic

RedirectToRouteResult RedirectToAction

RedirectToRoute

Chuyin hung an met action method khic

ContentResult Content Tri ve met content type do ngtrai sir dung tu A

Tr& ve a lieu dang JSON

TM ve 1 down Java Script

Trang 36/109

Trang 36

Chwcmg 2 - Cac thenh phIn chfnh caa ASP.NET MVC

EmptyResult (None) Tni ye de lieu clang rang

2.1.4 Nkin cac au van

Controller truy cap de lieu den, ching hen nhu gia trj chuOi truy van, gia trj form, vi the

tham so duqc phan tich tir URL thong qua djnh tuyen Co 3 each chinh de truy cap de lieu:

- Chiet xuat tir mOt tap cac Context Object

- C6 de lieu truyen nhu la mQt tham sic) dm action method

Dan ra unit nang model binding coat framework

a Context Object:

Day la each true tiep nhat de gie de lieu rai My no Khi chang ta to ra mOt controller

bat nguOn tir 16p Controllerbase Ch'ing ta co the truy cap vio mOt tap hop cac thuOc tinh

thmin tien a tiep can th8ng tin you clu Nheng thuOc tinh nay bao glim Request,

Response, RouteData, HttpContext, va Server Mai thuOc tinh cung cap thong tin ye cac

khia canh lchic nhau cua yOu ciu Gin la thuOc tinh the tien vi n6 lay ingi 1o3i de lieu

Ichac nhau tir ContextController cua you au (c6 the duqc truy cap th8ng qua

Controller.ControllerContextproperty) Dudi day la cac Context Object thutong dung:

Request.QueryString NameValueCollection Cac bien GET duqc giri tai you

nhu GET hoar POST) duce sir dung cho you cAu nay

Trang 37/109

Trang 37

Chtrcmg 2 - Cac thanh phIn chinh cua ASP.NET MVC

Request.Headers NameValueCollection Toin b0 cac header HTTP girl di

vai yOu au nay

Request.UserHostAddress string Dja chi IP cna ngubi sir dung tao

ra you cau nay

RouteData.Route RouteBase Cac mile RouteTable.Routes duqc

chqn cho you cau nay

RouteData.Values RouteValueDictionary Tham st, hoot dung djnh tuyen

(Ity tir URL hoac la gia trj mac dinh)

HttpContext.Application HttpApplicationStateBase Luu Ire trong thai Ung dung

HttpContext.Items !Dictionary Lutz tie tiling thai cho yeti au

high tai

HttpContext.Session HttpSessionStateBase Luu tit tong thai cho phien lam

viec cilia ngubi lruy cop

da (tang nhap

TempData TempDataDictionary Cac du lieu tom thai duqc ltru trey

cho ngubi dung hien tai

Su ayng cac tham so c on method:

Action method c6 the nhan cac tham so Day la mut cach gqn gang han de nhon de lieu den so vai chiet xuat theo cach thu cling tir cac Context Object Dieu nay lam cho viec dqc cac action method tra nen de ding

Mac djnh, gia trj cua tham se dau vao duqc nhan trong tap hap de lieu coa you cau, bao gem mOt cap ten/gia trj cho moi de lieu form, gia trj chuoi query, gia trj cookie Controller djnh vi cac action method vi xric djnh cac gia tri tham so cho action method, dqa vao RouteData instance va dua vao de lieu form

Trang 38/109

Trang 38

Chuang 2 - Cac thenh phAn chinh cfaa ASP.NET MVC

Neu MVC Framework khong tim they gia trj cho tham so kieu tham chieu (vi du nhu mat chuOi string hay Object), action method yin duqc gqi, nhung sir dung than se kieu null Can neu Icheng tim they gia trj cho tham se kieu gia trj (vi du nhu int hay double), mat ngoai le se duqc nem ra va action method se lcheng duqc gqi

C6 mat s6 each de truy cap cac gia trj tham s6 URL tong cac action method ciia 16p Controller Lep Controller cho thAy thuac tinh Request va Response th the duqc truy cap bang mat action method Nhang thuOc tinh nay co neu nghia giOng yeti tic &Ai tucmg HttpRequest va HttpResponse (da la mat phttn cua ASP.NET )

Vi du clued day cho thay each ma dal ttrqng Request lAy gia trj mat churn string "id"

publicvoid Detail()

{

int id = Convert.ToInt32(Request["id"]);

}

ASP.NET Framework c6 the to Clang inh xa gia trj tham s6 caa URL tam gia trj tham

se cila action method Mac dish, neu mat action method c6 mat tham s6, MVC Framework se Idem tra dft lieu you cau va xic djnh xem c6 you cau nao chira mot gia trj HTTP yeti ten gibing nhu the khong Neu c6, gia trj cua you cau se duqc truyen vat) action method

Vi du duei day, tham se "id" duqc gia djnh anh x; tea mat gia trj request cling c6 ten

la "id" Anh xa nay la tu clang

public ResultAction Detail(int id)

duqc quy djnh trong file Global.asax va c6 d?ng / (controller) / (action} / id)

Trang 39/109

Trang 39

Chuang 2 - Cac thanh phlr chfnh cda ASP.NET MVC

MVC framework cling hO trq tham so tily chip cho the action method Tham se thy chin duct xi' ly bing each sir dung tham so kieu nullable Vi du:

public ActionResult ShowArticles(DataTime? data)

Doi khi cluing ta muen thgc hien logic 6 met hoic nhcmg thai diem sau day: truck vi sau

khi action method dugc goi, truck vi sau khi ActionResult dugc ggi, hoic khi cic ngoai le

dugc nem ra tron img dung cita chting ta BE h6 try diet' nay, ASP.NET cung cap cho cluing

ta cic filter (be loc)

Co ben kieu filter ca bin MIA kieu se co logic tai nhftng thin diem khic nhau tong qui trinh xir ly you ciu

Trang40/109

Trang 40

Chuang 2 - Cac thanh phan chfnh coa ASP.NET MVC

Men filter Interface Thyt thi m$c dlnh MS to

Authorization lAuthorizationFilter

AuthorizeAttribute

Clay tram tien, truerc tit ca nhfing filter !chic ho*c • phuong thIrc action

Ding de chimg thuc cac user hien tai xem c6 dii quyen hp hay kheng

Action lActionFilter

ActionFilterAttribute

Chay tnroc va sau action method duqc gqi

Result IResultFilter

ActionFilterAttribute aay tru6c va sau

action result duqc gqi Exception TExceptionFilter

HandleErrorAttribute

Chay khi co cac ngoai le ben trong ling dung

- p dying filter cho controller vi action method

Be loc c6 the ap dung cho tong action method rieng bi'et hay cho wan be controller

Vi du sau chi mg to ap dung filter Authorize cho tong action

} }

[Authorize]

public ViewResult Create() {

Trang41/109

Ngày đăng: 04/07/2016, 00:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w