Introduce ASP.NET MVC 5

98
LOGO Sinh viên thực hiện : Lê Trung Thảo -- MSSV: 11110126 Nguyễn Thị Hoa Bích– MSSV: 11110009 Khoa : Công Nghệ Thông Tin Trường : ĐH Sư Phạm Kỹ Thuật Tp Hồ Chí Minh TÌM HIỂU ASP.NET MVC 5 BÁO CÁO ĐỀ TÀI MÔN: CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM 3

Transcript of Introduce ASP.NET MVC 5

BO CO TI

Sinh vin thc hin : L Trung Tho -- MSSV: 11110126 Nguyn Th Hoa Bch MSSV: 11110009Khoa : Cng Ngh Thng TinTrng : H S Phm K Thut Tp H Ch MinhTM HIUASP.NET MVC 5BO CO TIMN: CNG C V MI TRNGPHT TRIN PHN MM

3

LOGO

LOGOClick to edit Master text stylesNI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

2

Gii thiu MVC v ASP.NET MVC 5

3

4 MVC l g ?MVC l mt mu thit k (design pattern) c s dng trong k thut phn mm. Theo ng dng c chia lm 3 phn Model, View v Controller. Mi phn c nhim v ring bit v c lp vi cc thnh phn khc.Mt s MVC Framework pht trin da trn m hnh MVC:Strut, JSF, Spring,(Java)Zend (PHP)ASP.NET MVC

Vo nhng nm 70 ca th k 20, ti phng th nghim Xerox PARC Palo Alto. S ra i ca giao din ha GUI (Graphical User Interface) v lp trnh hng i tng ( Object Oriented Programming) cho php lp trnh vin lm vic vi nhng thnh phn ha nh nhng i tng ha c thuc tnh v phng thc ring ca n. Khng dng li , nhng nh nghin cu Xerox PARC cn i xa hn khi cho ra i ci gi l kin trc MVC (vit tt ca Model View Controller). Th h tip theo ca MVC xut hin cng vi h iu hnh NeXT v cc phn mm ca n.Sau , ln lt cc MVC framework ra i da trn m hnh MVC nh: CodeIgniter, Zend, ASP.NET MVC 4

5Kin trc MVCController:Nhn yu cu t userX l v xy dng model ph hpChuyn model sang View hin thView: Nhn model t Controller to giao din ph hp v hin thModel: Cha d liu chia s gia Controller v View

- Model: c giao nhim v cung cp d liu cho c s d liu v lu d liu vo cc kho cha d liu. Tt c cc nghip v logic c thc thi Model. D liu vo t ngi dng s thng qua View kim tra Model trc khi lu vo c s d liu. Vic truy xut, xc nhn v lu d liu l mt phn ca Model.- View: Hin th cc thng tin cho ngi dng ca ng dng v c giao nhim v cho vic nhn cc d liu vo t ngi dng, gi i cc yu cu n b iu khin, sau l nhn li cc phn hi t b i khin v hin th kt qu cho ngi dng. Cc trang HTML, JSP, cc th vin th v cc file ngun l mt phn ca View.- Controller: l tng trung gian gia Model v View. Controller c giao nhim v nhn cc yu cu t pha my khch. Mt yu cu c nhn t my khch c thc hin bi mt chc nng logic thch hp t thnh phn Model v sau sinh ra cc kt qu cho ngi dng v c thnh phn View hin th. ActionServlet, Action, ActionForm, struts-config.xml l cc thnh phn ca Controller.

5

6u im Nhc im ca MVCu im:Th hin tnh chuyn nghip trong lp trnh, phn tch thit kPht trin ng dng nhanh, d dng, d nng cp, bo trNhc im:i vi project nh, gy cng knh, tn thi gian trong qu trnh pht trin, tn thi gian trung chuyn d liu ca cc thnh phn

u im:-Th hin tnh chuyn nghip trong lp trnh, phn tch thit k. Do c chia thnh cc thnh phn c lp nn gip pht trin ng dng nhanh, n gin, d nng cp, bo tr module ha cc chc nng, v c xy dng nhanh chng.-MVC tch cc tc v ca ng dng thnh cc phn ring l Model, View, Controller gip cho vic xy dng ng dng nh nhng hn. D dng thm cc tnh nng mi, v cc tnh nng c c th d dng thay i. MVC cho php cc nh pht trin v cc nh thit k c th lm vic ng thi vi nhau. MVC cho php thay i trong mt phn ca ng dng m khng nh hng n cc phn khc-Kin trc MVC tch bit (decoupling) s ph thuc gia cc thnh phn trong mt i tng ha, lm tng tnh linh ng (flexibility) v tnh ti s dng (reusebility) ca i tng ha . Mt i tng ha by gi c th d dng thay i giao din bng cch thay i thnh phn View ca n trong khi cch thc lu tr (Model) cng nh x l (Controller) khng h thay i. Tng t, ta c th thay i cch thc lu tr (Model) hoc x l (Controller) ca i tng ha m nhng thnh phn cn li vn gi nguyn.-Chnh v vy m kin trc MVC c ng dng xy dng rt nhiu framework v th vin ha khc nhau. Tiu biu l b th vin ha ca ngn ng lp trnh hng i tng SmallTalk (cng do Xerox PARC nghin cu v pht trin vo thp nin 70 ca th k 20). Cc Swing Components ca Java cng c xy dng da trn kin trc MVC. -Tch r rng cc mi lin quan, m kh nng test TDD (Test Driven Developer). C th test cc thnh phn m trong ng dng m khng cn phi chy Controllers cng vi tin trnh ca ASP.net v c th dng bt k mt unit testing framework nh NUnit, MBUnit, MS Test[2, p 15]-Bao gm nh x URL mnh m: v d c th nh x a ch /Products/Edit/4 thc hin hnh ng edit ca lp iu khin ProductControllers hoc nh x a ch Blog/SomeTopic thc hin hnh ng Display Topic ca lp iu khin Blog Engine Controller.Nhc im:-i vi d n nh vic p dng m hnh MVC gy cng knh, tn thi gian trong qu trnh pht trin.

6

7ASP.NET MVC vs ASP.NET WebForm

.NET Framework h tr cc loi ng dng nh desktop, web v cc ng dng console.ASP.NET framework l mt phn ca .NET framework, c xy dng nhm h tr cc ng dng Web (caching, authentication v authorization).Trong , Microsoft c 2 hng pht trin web trn nn ASP.NET l ASP.NET Webforms v ASP.NET MVC. V ASP.NET MVC ch l s thay i v mt t duy, n khng hon ton thay th cho c ng dng ASP.NET Web Forms.i vi cc lp trnh vin v ang lm vic vi ASP.NET WebForm th c mt s im nn ch ti. Th nht ASP.NET MVC khng phi l mt thay th cho ASP.NET WebForm m ch l mt chn la mi cho cc nh pht trin v ty vo tng tri nghim ca tng ngi khc nhau v ty vo s thch ring, s trng ring cc d n khc nhau cc bn chn ASP.NET MVC hay WebForm. Hai cng ngh ny c xy dng trn mt nn tng chung l ASP.NET Framework. Do nhng lp trnh vin no lm vic vi ASP.NET WebForm v quen thuc vi nhng khi nim th khi nim c th hon ton s dng li ASP.NET MVC

7

8ASP.NET MVC vs ASP.NET WebFormTnh nngASP.NET WEBFORMASP.NET MVCKin trc chng trnhKin trc m hnh WebForm->Business->DatabaseKin trc s dng vic phn chia chng trnh thnh Controller, Model, ViewC php chng trnhS dng c php WebForm, tt c cc s kin v control do server qun lCc s kin c iu khin bi Controller, cc control khng do server qun lTruy cp d liuS dng hu ht cc cng ngh truy cp d liu trong ng dngPhn ln dng LINQ to SQL class to m hnh truy cp i tngDebugDebug chng trnh phi thc hin tt c bao gm cc lp truy cp d liu, s hin th, iu khin cc controlsDebug c th s dng cc unit test kim tra cc phng thc trong ControllerTc phn tiTc phn ti chm trong khi trang c qu nhiu cc controls v ViewState qu lnPhn ti nhanh hn do khng phi qun l ViewState qun l cc control trong trangTng tc vi javascripTng tc vi javascrip kh khn v cc controls c iu khin bi serverTng tc vi javascript d dng v cc i tng khng do server qun l iu khin khng kh.URL AddressCu trc a ch URL c dng .aspx?& Cu trc a ch rnh mch theo dng Controller/Action/ID

ASP.NET WebForm mang ti mt trang web m giao din c th lu gi trng thi, v cui cng thm vo mt lp tru tng tinh vi nm trn HTTP v HTML, s dng ViewState v postback to ra hiu ng ca vic c trng thi. Cc trang ASP.net u c lifecycle v dng cc web controls, cc event thc hin cc hnh ng cho UI (User Interface) khi c s tng tc vi ngi dng nn hu ht ASP.net WebForm x l chm.iu ny thch hp vi phong cch pht trin ko v th ca Window Form, tc l bn t cc i tng c giao din ln trang v m x l vo trnh x l s kin ca chng. MVC ha vo bn cht khng trng thi ca HTTP, lm vic chung vi n hn l chng li. iu ny yu cu bn phi hiu tht s cch lm vic ca mt ng dng web, t c iu , MVC cung cp mt cch tip cn n gin, mnh m v hin i cho vic vit cc ng dng web vi m c trt t m d dng kim th (test) v bo tr sau ny, gii phng nhng phc tp kh chu v cc gii hn khng ng c. iu c bit l ASP.NET MVC c m ngun m, khng ging cc nn tng trc , bn c th d dng ti m ngun gc ca ASP.NET MVC, thm ch bn c th sa i v to ra phin bn ca ring bn.C nhng tnh hung m ASP.NET WebForm kh tt thm ch cn tt hn ASP.NET MVC. V d nh cc ng dng nh, ni b m trc tip kt ni thng vo cc bng CSDL hoc dn ngi s dng thng qua cc trnh hng dn t ng (wizard). V th s khng cn phi lo lng v bng thng do ViewState, khng dnh dng ti vn ti u ha h thng tm kim, v khng b lm phin v vic kim th (test) v bo tr lu di. S tin li ca cch pht trin kiu ko th ca ASP.NET WebForm lm m i cc im yu ca n. Nhng mt khc, nu bn vit mt ng dng trn Internet, hoc cc ng dng ni b ln hn, bn s hng ti tc download nhanh v tng thch trnh duyt cho, c xy dng vi cht lng cao hn, m kin trc tt thch hp cho vic test t ng, trong trng hp ASP.NET MVC s mang li nhng u im quan trng. Vic kim tra (test), g li (debug) vi ASP.net WebForm u phi chy tt c cc tin trnh ca ASP.net, v s thay i ID ca bt k Controls no cng nh hng n ng dng. i vi MVC th vic c th s dng cc unit test c th thm nh rt d dng cc Controllers thc hin nh th no.

8

9Cc phin bn ASP.NET MVCNgyPhin Bn10 -12- 2007ASP.NET MVC13 -3- 2009ASP.NET MVC 1.010 -3- 2010ASP.NET MVC 26 -10- 2010ASP.NET MVC 320 -9- 2011ASP.NET MVC 4 17 -10- 2013ASP.NET MVC 5

2.1ASP.NET MVC3-So vi phin bn ASP.NET MVC2 th tnh nng mi c h tr thm HTML5 v CSS3; tnh nng ny ch h tr cho nhng trnh duyt mi.- Ci thin v Model validation.-H tr 2 View Engine: RAZOR, ASPX, k c Open source trong khi ASP.NET MVC2 ch c ASPX.-Controller c ci tin hn nh thuc tnh ViewBag v kiu ActionResult.-Ci thin Dependency Injection vi IDpendencyResolver (c 2 phn: DependencyResolver v interface IDpendencyResolver)trong ASP.NET MVC3; y l lp thc thi m hnh Service Locator, cho php framework gi DIContainer khi cn lm vic vi 1 lp thc thi t mt kiu c th.- Cch tip cn vi JavaScript c hn ch.-H tr caching trong Partial page.2.2 ASP.NET MVC4-ASP.NET Web API ra i, nhm n gin ho vic lp trnh vi HTML hin i v y l mt ci tin mi thay cho WCF Web API.-Mc nh ca d n c ci thin hn v hnh thc b tr, gip d nhn hn.-Mu Empty Project l project trng, ph hp cho nhng tn developer mun nng cao kh nng lp trnh vi ASP.NET MVC4.-Gii thiu jQuery Mobile, v mu Mobile Project cho d n.-H tr Asynchrnous Controller.-Kim sot Bundling v Minification thng qua web.config-H tr cho vic ng nhp OAuth v OpenID bng cch s dng th vin DotNetOpenAuth.-Phin bn mi Windows Azure SDK 1.6 c pht hnh.2.3 ASP.NET MVC5-Vi MVC5 th ci tin hn so vi ASP.NET MVC4, Bootstrap c thay th mu MVC mc nh.-Chng thc ngi dng Authentication Filter c tu chnh hoc chng thc t hng th 3 cung cp.-Vi Filter overrides, chng ta c th Filter override trn Method hoc Controller.-Thuc tnh Routing c tch hp vo MVC5.-Chy trn Net 4.5, 4.5.1. V vi Visual Studio 2013 -B lc xc thc - chy trc khi cc b lc cho php trong cc ng ng dn ASP.NET MVC -Bootstrap trong cc mu MVC -ASP.NET Web API2

Kt lunNgoi nhng tin ch c ca nhng phin bn tin nhim, MVC 5 c ci tin cng nh cung cp thm nhng tnh nng mi. ASP.NET MVC 5 c tch hp sn trong Visual Studio 2013 v chy trn nn .NET 4.5, 4.5.1.

9

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

10

Xy dng ng dng Web vi ASP.NET MVC 5

11

12c im ASP.NET MVC 5MVC: Tch bit cc phn vic trong x l yu cu.St vi giao thc web: Khng hng s kin nh ASP.NETKhng duy tr thng tin trng thi nh ASP.NETT ng nhn din thit b: T la chn view ph hp.Razor: sinh giao din.Kiu d liu ng: ViewBag, DataView

Ci thin Ajax: Jquery+ Helper Ajax.Kim li: lp trnh1 ln p dng cho c 2 client v server.Web API: th vin web dng chn nhiu loi thit bAction Filter: kim sot cc Action.D test: d dng test cc Action ca cc ControllerNuGet: qun l cc gi m rng.c tch hp trong Visual Studio 2013 v chy trn .NET 4.5, 4.5.1

12

To Project ASP.NET MVC 5

13

14To project ASP.NET MVC 5M Visual Studio 2013 ->File ->New ->Project ->Templates ->Web ->Chn ASP.NET Web Application

14

15Cc loi project ASP.NET MVC 5Individual User Accounts: D n Internet bao gm c phn securityNo Authentication: D n Internet khng bao gm phn securityWindows Authentication: D n Intranet bao gm c phn security nhng ti khon c qun l trn mng ni bOrganizational Accounts: D n s dng ti khon t cloud computingNgoi ra: bn c th chn Web API b sung kh nng h tr xy dng th vin web

15

16Cu trc project ASP.NET MVC 5

16

17Cc th mc project ASP.NET MVC 5Controllers: Cha tt c cc Controller trong ng dng. p ng yu cu n t trnh duyt, quyt nh phi lm g v phn hi kt qu.Models: Cc lp m hnh d liu c t chc nm gi v thao tc d liuViews: Cha cc mu giao din ngi dng ca ng dng

17

18Cc th mc project ASP.NET MVC 5App_Data: Cha cc file c s d liu (nuc)App_Start: Cha lp c chy mt ln khi ng dng bt uContent: Cha ti nguyn tnh nh hnh nh, CSSScripts: Cha Java Script cn thit ca ng dngGlobal.asax: Tptin s kin cha cc iu khin s kin nhm kim sot vng i ca Request, Session, ApplicationWeb.config: Tp tin xml cha thng tin cu hnh ca ng dng web

18

19Thm ControllerCc controller cha trong trong th mc ControllerTn ca controller phi c hu t Controller

19

20Thm Action

20

21Thm ViewRight Click action -> Add View

21

22nh tuynPhn tch chui URL xc nh phng thc/lp no s c giMc nhin ASP.NET s dng nh dng kiu nh sau:/[Controller]/[ActionName]/[Parameters]C th thay i nh dng ny ti App_Start/RouteConfig.cs file

{controller}: tn Controller (khng bao gm phn hu t Controrller){action}: tn action mun gi{id}: l tham s id c truyn cho {action}

i s defaults mc nh ca {controller}/{action}/{id}:Controller = Home. Ch ra controller mc nh l Home. Ngha l, khi khng ch nh Controller trn Url th c hiu l Home.Action = Index. Ch ra controller mc nh l Index(). Ngha l, khi khng ch nh Controller trn Url th c hiu l Index.Id = UrlParameter.Optional: Ch ra tham s id khng bt buc. Ngha l trn url ta khng cn phi nht thit cung cp id

22

23nh tuyn

23

24Thm nh tuyn

24

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

25

Controller

26

27ControllerCc controller dng x l cc request gi n, qun l d liu c nhp bi ngi dng, tng tc v thc thi logic ng dng hp lMi controller cha cc phng thc (gi l action) v k tha lp Controller c xy dng snNhim v lp Controller Tim kim action thch hp v kim tra action c th gi c khng Ly cc gi tr c gi ln t request lm tham s cho action X l tt c cc li c th xy ra trong sut qu trnh thc thi action Cung cp lp RazorViewEngine mc nh render cc view tr v cho trnh duyt

Nn tng ASP.NET MVC nh x cc URL n cc lp c gi l controller. Cc controller c dng x l cc request gi n, qun l d liu c nhp bi ngi dng, tng tc, v thc thi logic ng dng hp l. Mt lp controller thng gi cc view sinh ra m HTML tr v cho request.

Lp c bn nht c cc controller k tha c tn l ControllerBase, lp ny cung cp cc m qun l m hnh MVC chung nht. Lp Controller c k tha t ControllerBase, v l lp mc nh dng cho vic ci t controller. Lp Controller c trch nhim:

Tm kim action thch hp gi v kim ra xem th action c th gi c hay khng. Ly cc gi tr c gi ln t request s dng nh l tham s cho cc action X l tt c cc li c th xy ra trong sut qu trnh thc thi phng thc action. Cung cp lp RazorViewEngine mc nh render cc view tr v cho trnh duyt.27

28Action Ni dungTham sTip nhn tham sRequestFormCollectioni s ActionModelAction ResultText, View, Action, Url, File, JavaScript, Json

Trong cc ng dng ASP.NET khng s dng nn tng MVC, s tng tc ca ngi dng c t chc theo cc trang v theo vic pht ra v qun l cc s kin ca trang v cc iu khin trn trang . so snh, th vi cc m hnh MVC, s tng tc vi ngi dng c t chc theo cc controllers v cc action ca chng. Lp controller s nh ngha cc phng thc action. Cc controller c th c bao nhiu action ty nhu cu.

Cc phng thc action thng c nh x 1-1 vi cc tng tc ca ngi dng. V d nh ngi dng in mt URL vo trnh duyt, hoc nhn vo mt lin kt, hoc gi ln mt form. Cc tng tc ni trn to ra request c gi ln cho server. Khi , URL ca request c gi ln s c cc thng tin m nn tng MVC s s dng tm kim v thc thi phng thc action.

Khi ngi dng g mt URL vo trnh duyt, ng dng MVC s s dng cc quy tc nh tuyn (routing rules) c nh ngha tp tin Global.asax phn tch URL v xc nh ng dn ca controller. Sau controller s xc nh action tng ng x l request.28

29Action Tham sTham s truyn di dng query string hay form fieldQuery string

Form field

29

30Action Tip nhn tham s

Trong MVC c4 cchnhnthamsyucuSdngitngngmnhRequestSdngi s caActionSdngthamsFormCollectionSdngModel30

31Action Tip nhn tham sS dng Request, dng 1 trong cc cch sau:String value = Request []String value = Request.QueryString []String value = Request.Form []String value = Request.Params []

31

32Action Tip nhn tham sS dng FormCollection, ch nhn c cc trng ca formTng ng cch String value = Request.Form []

32

33Action Tip nhn tham sS dng i s ca action, ch nhn c cc tham s trng tnV d

33

34Action Tip nhn tham sS dng ModelTo lp model cha cc thuc tnh cng tn vi tham sDng lp ny lm i s cho cc action nhn cc tham s trng tn vi thuc tnh

34

35Action Action Result

35

36Action Action Result

Tn Result M tHm s dngContentResultTr v chuiContent()FileContentResult/FilePathResult/FileStreamResultTr v ni dung fileFile()JavaScriptResultTr v ni dung JavaScript()JavaScript()JSonResultTr v d liu dng JsonJson()RedictResultChuyn sang URL miRedirect()

RedirectToRouteResultChuyn sang 1 action hoc 1 action ca controller khcRedirectToRoute()RedirectToAction()

ViewResultChuyn sang View hin thView()

PartialViewResultChuyn sang View hin th PartialView()

36

37Action Action SelectorAction Selectors: nh du cc action[HttpPost] action s c gi khi request POST[HttpGet] action s c gi khi request GET[ActionName(name)] i tn action[ChildActionOnly] khng cho gi trc tip, ch gi qua @Html.Action()Ngoi ra c [NonAction] - nh du phng thc trong controller khng phi l action

37

38Action Action FilterThc hin cc nhim v xy ra ti cc thi im thc hin khc nhau ca mt actionC th s dng lc mt action n l, cc action trong mt Controller hay tt c cc action trong projectMt s action filter[Authorize] bt buc ng nhp mi gi c action[AllowAnonymous] khng bt buc ng nhp[ValidateAntiForgeryToken] chn request gi mo[ValidateInput] cho php hay khng gi m html n actionNgoi ra c th to custom action filter

38

39Data SharingChia s d liu gia cc thnh phnC th s dng cc cch sau:ViewBag, ViewDataModelSessionApplicationCookieGlobal.asax

D liu to ra thnh phn ny, c th s dng thnh phn khc39

40Data Sharing ViewBag, ViewDataDng chia s d liu t Controller sang ViewS dng dng: ViewBag.Key ViewData[Key]

40

41Data Sharing ModelChia s d liu dng model: s trnh by chi tit phn sau

41

42Data Sharing SessionPhin lm vic (session) c tnh t lc bt u truy cp website cho n khi ng ca s trnh duyt hoc ht hnD liu c lu vo session s c duy tr trong sut phin lm vicTruy xut session Controller: Sesion View: @Session Class bt k:HttpContext.Current.Session

42

43Data Sharing SessionThao tc vi sessionMethod/PropertyM tV dAdd(Key,Value)Thm mi 1 i tng vo Session.Session.Add(Now,DateTime.Now)[Key]=ValueThm mi hoc thay th 1 i tng.Session[Cart]=new ShoppingCart()Remove(Key)Xa i tngSession.Remove(Cart)Clear()Xa sch cc i tng trong SessionSession.Clear()Abandon()Hy SessionSession.Abandon()SessionIDM ca phin lm vicVar id = Session.SessionID

43

44Data Sharing ApplicationApplication c phm vi chia s trn ton ng dng, tt c cc user c th truy cpTruy xut i tng Application Controller: HttpContext.Application View: @HttpContext.Current.Application class bt k: HttpContext.Current.Application

44

45Data Sharing ApplicationThao tc vi Application:Application.Add(name, value)Application[name] = Application.Remove(name)Application.Clear()Application.Lock()Application.UnLock()

45

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

46

View

47

48View

48

49HTML5, CSS3, JQuery, BootstrapS dng HTML5, CSS3, Jquery, Bootstrap gip hin th hiu qu, hiu ng p, tng tc vi ngi dng tt hn, thn thin vi nhiu loi thit b

49

50Razor ???Razor l c php lp trnh n gin, hu ch, cho php to giao din ng dng ASP.NET MVC nhanh chng, r rng v linh hot.Razor s dng c php C# hay VB.NET kt hp vi html .

50

51Razor C php

52Razor C php

53Razor Helper ???Razor helper l cc thnh phn sinh giao din web ph hp vi rng buc d liu ca model duy tr thng tin trn cc thnh phn H tr n gin ha vic vit giao dinc chia lm cc nhm:Lin ktFormSinh giao din t modelKim li

54Razor Helper Lin [email protected]() dng sinh lin kt [email protected]() c cc tham sLinkText: nhn lin ktActionName: tn actionControllerName: tn controllerRouteValues: tp gi tr truyn n actionHtmlAttributes: tp thuc tnh html ca th

55Razor Helper Form

56Razor Helper Form

57Razor Helper Form

58Razor Helper nh dng

59Razor Helper nh dng s

60Razor Helper nh dng thi gian

61Razor Helper Sinh giao din ngDa vo c im ca cc thuc tnh trong lp sinh giao dinSinh giao din tng minhSinh giao din ngm nhHin th thng tin

62Razor Helper Sinh giao din ngSinh giao din tng minh: ch nh loi control i vi tng thuc tnh

Razor Helper Sinh giao din ngSinh giao din ngm nh: t sinh control ph hp vi c im thuc tnh ca modelHtml.EditorFor(m=>m.Property) Sinh1 control cho1 thuctnh.Html.EditorForModel() Sinh ton form field theo cc thuc tnh ca ModelHtml.Editor(object) Sinh ton form field theo cc thuc tnh ca Object t trong ViewBag

63

63

Razor Helper Sinh giao din ng

64

Razor Helper Sinh giao din ngCc kiu control thng dng

65

Razor Helper Sinh giao din ngHin th thng [email protected](m=> m.Property) Hin th tn ca thuc tnh [email protected](m=>m.Property) Hin th gi tr cho thuc tnh [email protected]() Hin th gi tr ca tt c cc thuc [email protected]("Mail") Hin th gi tr ca tt c cc thuc tnh ca i tng trong ViewData hay ViewBag66

Razor Helper Custom helperNgoi cc helper nh sn, bn c th t to mt helper cho ring mnhS dng 1 trong cc cch sau:Static MethodExtention MethodRazor @helper67

Razor Helper Custom helper

Static methodViewResultTht s rt68

Razor Helper Custom helperExtention HelperViewResult

Quy cLp c m rng69

Razor Helper Custom helper

Razor @helperViewResultTht s rt n gin

@Truncate(input, 20)70

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

71

Model

72

73ModelTrong MVC, model l mt lp cha cc thuc tnh, dng chia s d liu gia Controller v ViewTrong mt s ng dng ASP.NET MVC c s dng Entity Framework, model c th l entity nh x n table CSDLModel c th cha cc annotation cho cc thuc tnh phc v validate d liu View v Controller

73

74Model Chia s d liuT Controller -> View Controller: kt qu ca action return View(model) vi model khai bo kiu ModelClass View: khai bo s dng @model ModelClass, v s dng i tng @Model nh l kt qu nhn c@model: t kha khai bo s dng model class@Model: i tng cha kt qu nhn c t ControllerT View -> Controller: dng model lm i s cho action, view c th dng model sinh giao din ng

74

75Model Chia s d liu

75

76Model entityModel c th dng lm entity nh x n table CSDL trong mt s ng dng c s dng Entity FrameworkTm hiu thm Entity Framework: Here

76

77Model data annotationModel c thng c cc data annotation nh du thuc tnh kim li phc v validate d liu

77

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

78

Validation

79

80Validation ???Validation (kim li) l mt tnh nng quan trng trong ASP.NET MVC v c pht trin trong mt thi gian diKim li d liu hn ch c m c gi n server, d liu sai do ngi dng nhpKim li d liu cn thc hin 2 pha client v server

Vic kim tra thng tin trn server nn hon thnh d c kim tra d liu client hay khng. Ngi dng c th v hiu ha Javascript hoc lm 1 cch no vt qua s kim tra d liu client, v server l ni phng v cui cng trc nhng d liu khng mong mun. Mt vi quy tc kim tra i hi ch c thc hin server, v y l ni tip cn ngun d liu an ton hn so vi vic tip cn t trnh duyt.

80

81Validation Trong ASP.NET MVCVi ASP.NET MVC ch cn vit mt ln nhng c th kim li cho c 2 pha client v server Model: thm cc data annotation kim li cc thuc tnh View:Kim li pha client: @Script.Render(~/bundles/jquery)B sung vo form @Html.AntiForgeryToken() trnh cc request gi toHin th li: @Html.ValidationMessageFor(Property) @Html.ValidationSummary() Controller:Kim li pha server ModelState.IsValid(), ModelState.AddModelError()

Kim sot d liu c th thc hin c2 phia l client v server.Kim pha client s phn ng nhanh cho ngi s dng c th sa cha ngayKim li pha server s thc hin cc li m client khng th lm c nu d liu c lin quan n ti nguyn server.Vi MVC bn ch cn vit1 lnnhngkimtrac2 phalclient vserver. Nuvmtldo nomclient khngthchincthcserver thayth.Vic kim tra thng tin trn server nn hon thnh d c kim tra d liu client hay khng. Ngi dng c th v hiu ha Javascript hoc lm 1 cch no vt qua s kim tra d liu client, v server l ni phng v cui cng trc nhng d liu khng mong mun. Mt vi quy tc kim tra i hi ch c thc hin server, v y l ni tip cn ngun d liu an ton hn so vi vic tip cn t trnh duyt.

81

NI DUNG

Gii thiu MVC v ASP.NET MVC1

Xy dng ng dng Web vi MVC52

Controller3

Validation6

Model5

View4

Website Organization7

82

Website Organization

83

84Website OrganizationLayout@RenderBody()@RenderSection()@[email protected]()@Html.Partial() I18N - Quc t ha

84

85Website Organization LayoutLayout ging nh mt template ca view

ViewLayout

85

86Website Organization LayoutLayout cha:Mt v ch mt @RenderBody() gi ch cho ni dung trong viewKhng hoc nhiu @RenderSection() gi ch cho cc phn c nh du @Section trong viewLayout@RenderBody()@RenderSection()@ViewBag.KeyViewContent@Section {}@ViewBag.Key

86

87Website Organization Layoutp dng layout:

_ViewStart.cshtml ch nh Layout cho cc view, chy trc mi viewTng t c th chn Layout khc cho view87

88Website Organization BundlesBundles ng gi cc ti nguyn

S dngBundleConfig.cs

_ViewStart.cshtml ch nh Layout cho cc view, chy trc mi viewTng t c th chn Layout khc cho view88

89Website Organization PartialViewPartialView l mt fragment c th ti s dng, gim thiu s vit li [email protected](): Nhng mt ActionAction ny return PartialView() loi b LayoutAction ny c th nh du [ChildActionOnly] khng cho truy xut trc [email protected](): Nhng mt View khng bao gm layout

Partial View l mt on (fragment) c th ti s dng gm ni dung v m lnh c nhng vo trong mt View v ci thin kh nng s dng ca mt trang web ng thi gim bt kh nng trng vit m trng lp hay phi vit li m lnh c trc

Lu : Partial View trong ASP.NET MVC tng t nh iu khin UserControl trong ASP.NET WebForm v c th hin qua lp ViewUserControl m xut pht l t lp UserControl ASP.NET89

90Website Organization PartialView

90

91Website Organization PartialView

91

92Website Organization I18NI18N vit tt ca Internationalization Quc t ha

i vi mt trang web c i tng ngi s dng cc vng min khc nhau th vic quc t ha l v cng quan trng. Vic quc t ha c ngha l lm cho ng dng c kh nng hin th ni dung di nhiu ngn ng khc nhau. Quc t ha trong ting Anh gi l Internationalization, v c 18 ch ci gia ch ci i v ch ci n nn hay c gi ngn gn l i18n92

93Website Organization I18NT chc ti nguyn

93

94Website Organization I18NS dng ti nguyn

94

95Ti liu tham kho Getting Started with ASP.NET MVC 5 http://www.asp.net/mvc/overview/getting-started/introduction/getting-startedPro ASP.NET MVC 5Download

95

96

96

Thank You For Listening !

LOGO

LOGOClick to edit Master text stylesDEMO

LOGO

LOGOClick to edit Master text styles