Tìm Hiểu Asp.Net MVC2
Upcoming SlideShare
Loading in...5
×
 

Tìm Hiểu Asp.Net MVC2

on

  • 3,212 views

Sơ lược mvc2

Sơ lược mvc2

Statistics

Views

Total Views
3,212
Views on SlideShare
3,212
Embed Views
0

Actions

Likes
0
Downloads
179
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tìm Hiểu Asp.Net MVC2 Tìm Hiểu Asp.Net MVC2 Document Transcript

  • ! t. . . . . 2 năm 2012. 1
  • Danh .2 ...2 2 2 . MVC Trong .Net ………………………………………………………………2 1 .net MVC…………………………………………………2 1.3.Kiế .net MVC. …………………………………………………2 1.4. sp.net Webform .net MVC. ………………………………2 . T P Cơ B Trong Asp.net MVC 2 2.2. ……………………………………………………………..2 2.3 Method…………………………………………………..2 2.4.Views………………………………………………………………………….2 2.5.Models…………………………………………………………………………2 2
  • 3
  • 4
  • 5
  •  : .Asp.net . , ,postback.. ), . Nam . : : . . . : Asp.net MVC 2.0 . : . . : . . 6
  • .Net : . Không d Model-View-Controller. -8 - -View-Controller User Interface Paradigm inSmalltalk-80”, 8 năm 1988.Jurassic Common Gateway Đơn giản, linh họat Chạy web Interface (CGI) Lựa chọn duy nhất server,nên cần nhiều vào thời điểm này tài nguyên (cần các tiến trình riêng lẻ trên HĐH cho mỗi lời yêu cầu). Cấp thấpBronze age Microsoft Internet Chạy trong web Chỉ là đóng gói cho Database Connector server những câu truy vấn (IDC) SQL và template cho các kết quả có định dạng1996 Active Server Pages Mục đích chung Thông dịch thời (ASP) gian thực Xu hướng “spaghetti code”2002/03 ASP.NET 1.0/1.1 Đã được biên dịch Nặng nề trên băng Giao diện có trạng thông thái HTML khó nhìn Cấu trúc lớn Không thể test Xu hướng lập trình hướng đối tượng2005 ASP.NET 2.02007 ASP.NET Ajax2008 ASP.NET 3.52009 Asp.net MVC 1.02010 Asp.net MVC 2.0 ASP.NET 4.0 7
  • 2011 Asp.net MVC 3.0 Đ C .net MVC: ,MBUnit,MS Test.. , , routing policy,parameter serialization…). ProductController. d , < , template, data-binding, localization,…). - viewstate, page lifecycle. .net như form/windows authenticate, Url authorization, , session/profile state, configuration system, provider architecture …. .net MVC: Trong :Models,Views,Controllers. Models: trong các ứng dụng dựa trên MVC là những thành phần có nhiệm vụ lưu trữ thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong CSDL. Lấy ví dụ, chúng ta có lớp Product được sử dụng để mô tả dữ liệu từ bảng Products trong SQL, bao gồm ProductID, OrderDate... 8
  • Models. Ví dụ, đối tượng Product có một "Edit" view bao gồm các textboxes, các dropdowns và checkboxes để chỉnh sửa các thuộc tính của sản phẩm; có một "Display" view gồm 2 dòng, cột dòng là ProductID, dòng sau là OrderDate... để xem thông tin về sản phẩm. Con . ,views,controllers .1.4.So S .net Webform V .net MVC: Asp.net . : Models, Views, Control postback, . a . .net MVC Framework th . Asp.net Webform Asp.net MVC Webform-Business- Models-Views-Controllers DatabaseDebug ControllerUrl address > Controller/Action/Id 9
  • I .net MVC : ,Views, Controllers. , bên trong Control 1 product, trongânkhi UpdateAction . g . . 10
  • Asp.net MVC không phnhưng Asp.net WebForm như Configuration,Security,Roles… .net MVC: Content: s . . a . . : , Jsp, Php… .Urlhttp://mysite.com/default.aspx E:webrootdefault.aspxhttp://mysite.com/admin/login.aspx E:webrootadminlogin.aspx 11
  • .Urlhttp://mysite.com/photo Controller=”Gallery”, action=”Display”http://mysite.com/admin/login Controller=”Admin” action=”Login”Routing system : . . : :Url string “Browse/Category/pageI ndex” ParametersRouteHandler IRouteHandler new MvcRouteHandler()Default RouterVaulueDictionary new RouterVaulueDictionary (new{ controller= "Products", UrlParameter.Opti action = "List", onal category = "Fish", pageIndex = 3 }) ParametersConstraints RouterVaulueDictionary new RouteValueDictionary Parameters (new { pageIndex = @"d{0,6}" })DataTokens RouterVaulueDictionary : : : RouteBase: : GetRouteData . 12
  • Route: templating, defaults, constraints. RouteBase. Application_Start() . oute(). equest: IHttpModules Web.config. 7.x applicationHost.config : 1. .Routes : + Url . + . + . UrlRoutingModule . 2. . : + Route : , . + RouteHandler: routeHandler MvcRouteHandler. + Values: a . + DataTokens: . 3. RouteHandler RouteHandler . , cookies, authentication, query string .RouteValueDictionary: . . . : 13
  • nV (): .Add(new Route(…)). : , . : /Catalog/1234 . Parameter :actionRouteData . : Default: /yellow. 14
  • . . : .page cho action methods. : , action . . : . : . . . . : : . : Articles/1,Articles/123456…. : RouteConstraint: 15
  • : .như sau: mylink.NavigateUrl=”~/Details.aspx”+ ItemID; :<a href=”Produc/Details/<%:ViewData[“ItemID”]%>” > </a> .ActionLink(): : : : : /Products/List/{color}/{page} : : : : 16
  • :2.3. : . r. : : .. act . Filters: . Trong Controller: : . . : :Request.QueryString NameValueCollection requestRequest.Form NameValueCollection requestRequest.Cookies HttpCookieCollection 17
  • Request.HttpMethod String )Request.Headers NameValueCollection requestRequest.Url UriRequest.UserHostAddress String requestRouteData.Route RouteBase requestRouteData.Values RouteValueDictionary .HttpContext.Application HttpApplicationStateBaseHttpContext.Cache CacheHttpContext.Items IDictionaryHttpContext.Session HttpSessionStateBaseUser IPrincipalTempData TempDataDictionary : ha : : 18
  • như sau: : :. : : : 19
  • . . . : . :ViewResult View return View(); return View(“MyView”,modelObject);PartialViewResult return PartitalView();RedirectToRouteResult return RedirectToAction("SomeOtherAction", "SomeController"); return RedirectToRoute("MyNamedRoute");RedirectResult return Redirect("http://www.example.com");ContentResult return Content(rssString, "application/rss+xml");FileResult return File(@"c:report.pdf", "application/pdf");JsonResult return Json(someObject);JavaScriptResult return JavaScript("$(#myelem).hide();");HttpUnauthorizedResult return new HttpUnauthorizedResult();EmptyResult return new EmptyResult(); : : 20
  • . : : :ViewDataDictionary. : . : 21
  • Strongly Type Object Trong ViewData.Model: Bây .Model trong view như sau: : : XML JSON ) CSV (thư )sau: . : text/xml cho XML, text/csv cho CSV,application/rss+xml cho RSS. System.Net.Mime.MediaTypeNames. System.Text.Encoding . : 22
  • eed: ContentResult.NET 3.5 XDocument API : : JavaScript Object Notation (JSON) g serve . : citiesArray JSON như sau: . : JavaScript() JavaScriptResult 23
  • MicrosoftAjax.js MicrosoftMvcAjax.js : : FilePathResult . FileContentResult . FileStreamResult System.IO.Stream .File().G : : ():filename (required) stringcontentType(required) stringfileDownloadName string(optional) 24
  • 2.4.Views : : :Inline code <%: .. %> or <%=.. %> .HTML helpers ,Server control .Net Web FormPartial viewsChild actions . : Person như sau: -Person: 25
  • : :ControlCheck Html.CheckBox("myCheckbox", false) :boxHidden Html.Hidden("myHidden", "val") ->fieldRadio Html.RadioButton("myRadiobutton", "val", true)->buttonPassword Html.Password("myPassword", "val")->Text area Html.TextArea("myTextarea", "val", 5, 20, null)->Text box Html.TextBox("myTextbox", "val")-> :ControlCheck Html.CheckBoxFor(x => x.IsApproved) ->boxHidden Html.HiddenFor(x => x.SomeProperty)->fieldRadio Html.RadioButtonFor(x => x.IsApproved, "val") -> 26
  • buttonPassword Html.PasswordFor(x => x.Password) ->Text area Html.TextAreaFor(x => x.Bio, 5, 20, new{}) ->Text box Html.TextBoxFor(x => x.Name) -> : : : : : Url.Content("~/Views/Shared/Do an tot nghiep.pdf")-> Html.ActionLink("Hi", "About", "Home") ->action/controllerLink Html.ActionLink("Hi", "About", "Home", "https", "www.example.com", "anchor", new{}, null)-> Url.Action("About", "Home") -> Html.RouteLink("Hi", new { controller = "c", action = "a" }, null) -> :Html.ActionLink("Click me","MyAction",new{controller="Another", param = "val"}) : Multiselect Lists:Drop-down list Html.DropDownList("myList", new SelectList(new [] {"A", "B"}), "Choose") ->Drop-down list Html.DropDownListFor(x => x.Gender, new SelectList(new [] {"M", "F"})) -> 27
  • Multiselect list Html.ListBox("myList", new MultiSelectList(new [] {"A", "B"})) ->Multiselect list Html.ListBoxFor(x =>x.Vals,new MultiSelectList(new [] {"A", "B"}))-> sau: : : <%: Html.DropDownList("region", "Choose") %> :2.5.Models: 28
  • t .Templated View Helper: . :TênDisplay Html.Display("Title") temp .DisplayFor Html.DisplayFor(x => x.Title) -typeDisplayForModel Html.DisplayForModel() Html.DisplayFor(x => x.Title) model.Editor Html.Editor("Title")EditorFor Html.EditorFor(x => x.Title) -typeEditorForModel Html.EditorForModel() Html.EditorFor(x => x.Title)Label Html.Label("Title")LabelFor Html.LabelFor(x => x.Title) -typeLabelForModel Html.LabelForModel() Html.LabelFor(x => x.Title)DisplayText Html.DisplayText("Title")DisplayTextFor Html.DisplayTextFor(x => -type x.Title) : -type Person, thêm code như sau: 29
  • : , .:: 30
  • Html.EditorFor : 31
  • :[DisplayColumn][DataType][ReadOnly][DisplayFormat][Required] 32