Báo cáo Thực tập mô hình MVC trong Asp.net

Mục Lục

Danh Mục Các Từ Tiếng Anh .2

Danh Mục Các Bảng .2

Danh Mục Các Hình 2

Mở Đầu 2

Phần I.Tổng Quan Về Mô Hình MVC Trong .Net

1.1.Lịch sử phát triển 2

1.2.Đặc điểm của Asp.net MVC 2

1.3.Kiến trúc của Asp.net MVC. 2

1.4.So sánh Asp.net Webform với Asp.net MVC. 2

Phần II. Các Thành Phần Cơ Bản Trong Asp.net MVC

 2.1.Các khái niệm ban đầu 2

 2.2.Url và Routing .2

 2.3.Controller và Action Method .2

 2.4.Views .2

 2.5.Models 2

Phần III.Xây dựng ứng dụng SportStore

 

docx34 trang | Chuyên mục: ASP.NET | Chia sẻ: dkS00TYs | Lượt xem: 4596 | Lượt tải: 5download
Tóm tắt nội dung Báo cáo Thực tập mô hình MVC trong Asp.net, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ùng đăng nhập vào hệ thống
return new HttpUnauthorizedResult();
EmptyResult
return new EmptyResult();
Trả Về Định Dạng HTML Bằng Cách Hiện Thị Một View:
Hầu hết action method có nhiệm vụ trả dạng html cho trình duyệt, tức là tạo ra một khung nhìn, tức là một ViewResult:
Gọi View() để tạo ra một đối tượng ViewResult(), khi thực thi kết quả MVC FrameWork sẽ tìm trong ứng dụng một view chúng ta chỉ định để hiển thị.Nếu chúng ta có sử dụng areas thì nó sẽ tìm ở những vị trí sau:
Nếu chúng ta không sử dụng areas hoặc tìm không thấy thì MVC FrameWork sẽ tìm ở những vị trí tiếp theo:
Chuyển Dữ Liệu Từ Action đến View:
Như đã biết controller và view là 2 thành phần khác nhau, controller cung cấp dữ liệu cho view nhưng view không làm việc trực tiếp với controller, một bộ phận giúp chuyển dữ liệu giữa controller đến view là ViewData,Controller có thuộc tính gọi là ViewData có kiểu ViewDataDictionary.
ViewDaTa Như Là Một Từ Điển:
Đầu tiên chúng ta phải có đầy đủ ViewData của controller với tên và giá trị tương ứng sau đó hiển thị view. Có thể truy cập vào giá trị của ViewData trong view như sau:
Strongly Type Object Trong ViewData.Model:
ViewDataDictionary có thuộc tính đặc biệt gọi là Model
Bây giờ chúng ta có thể truy cập vào ViewData.Model trong view như sau:
Trả Về Dữ Liệu Văn Bản:
Ngoài định dạng html ứng dụng web còn có nhiều định dạng khác nữa như:
XML
RSS và ATOM
JSON (dùng cho ứng dụng sữ dụng AJAX)
CSV (thường dùng cho việc xuất dữ liệu ra định dạng Exel)
Văn bản thuần túy
Để thực hiện thành công việc trả về bất kì định dạng dữ liệu nào cần chú ý 3 điều như sau:
Dữ liệu của nó là chuổi.
Kiểu của nội dung gửi về: text/xml cho XML, text/csv cho CSV,application/rss+xml cho RSS. Có thể tìm thấy những giá trị này trong lớp System.Net.Mime.MediaTypeNames.
Dạng dữ liệu mã hóa được đặc tả như là một đối tượng System.Text.Encoding, chuổi sẽ được chuyển sang dãy các byte để gửi đi.
Nếu trả về dạng văn bản, và không quan tâm đến kiểu của nội dung, chúng ta có thể làm tắt như sau, FrameWork sẽ tự chuyển nó sang ContentResult:
Tạo RSS Feed:
Ví dụ cách dùng ContentResult. Để tạo RSS 2.0 chúng ta dùng hàm tạo tài liệu XML .NET 3.5 XDocument API và sau đó gửi đến cho trình duyệt:
Trả Về Dữ Liệu Dạng JSON:
JavaScript Object Notation (JSON) là dạng văn bản có cấu trúc, nó được dùng trong ứng dụng Ajax để gửi một đối tượng từ server đến trình duyệt. Asp.net MVC đã xây dựng lớp JsonResult để làm việc với các đối tượng JSON :
Nó sẽ chuyển citiesArray sang định dạng JSON như sau:
JsonResult sẽ không làm việc với phương thức POST.
Trả Về Câu Lệnh JavaScript :
Ta có thể dùng phương thức JavaScript() để trả về một JavaScriptResult
Để làm việc này ta phải sử dụng đến MicrosoftAjax.js và MicrosoftMvcAjax.js 
Trả Về File Và Dữ Liệu Dạng Nhị Phân:
FileResult là lớp cơ sở trừu tượng dùng cho việc gửi dữ liệu nhị phân đến trình duyệt. Asp.net MVC đã xây dựng 3 lớp con để dùng vào việc này:
FilePathResult: gửi một file trực tiếp từ hệ thống máy chủ.
FileContentResult: gửi nội dung là dãy các byte từ bộ nhớ.
FileStreamResult: gửi nội dung của đối tượng System.IO.Stream mà chúng ta đã mở từ một nơi nào đó.
Thông thường chúng ta lại không sử dụng 3 hàm này mà sữ dụng một overload là File().
Gửi File Trực Tiếp Từ Ổ Đĩa:
Kết quả của câu lệnh trên như sau:
Các Tham Số Trong Phương Thức File():
Tham số
Kiểu dữ liệu
Ý nghĩa
filename (required)
string
Đường dẫn của file
contentType(required)
string
Kiểu của nội dung
fileDownloadName (optional)
string
Tên file sẽ gửi
2.4.Views :
Thêm Nội dung Vào View:
Có 5 cách để thêm dữ liệu động vào View:
Kỹ thuật
Sử dụng
Inline code
Là thành phần độc lập với view, ví dụn như câu lệnh if, foreach, những câu lệnh này phải đặt trong or 
Inline code là công cụ cơ sở các kỹ thuật khác đều xây dựng dựa vào nó.
HTML helpers
Sử dụng để tạo ra thể html, dữ liệu sẽ được lấy từ ViewData hoặc bất kì một Model nào bằng cách trả về một MvcHtmlString
Server control
Dùng như trong Asp.Net Web Form
Partial views
Sử dụng chúng khi muốn chia sẽ một view cho nhiều thành phần khác
Child actions
Tạo những giao diện dạng control có thể dùng lại được.
Sử Dụng Inline Code:
Tạo lớp Person như sau:
Tạo một view ShowPerson.aspx,và chọn vào Creat a strongly-typed view,chọn lớp Person:
Trong ShowPerson.aspx chúng ta sử dụng inline code như sau:
Hiển Thị Input Control:
Control
Ví dụ
Check box
Html.CheckBox("myCheckbox", false) sẽ hiển thị như sau:
Hidden field
Html.Hidden("myHidden", "val") ->
Radio button
Html.RadioButton("myRadiobutton", "val", true)->
Password
Html.Password("myPassword", "val")->
Text area
Html.TextArea("myTextarea", "val", 5, 20, null)->
Text box
Html.TextBox("myTextbox", "val")->
Dùng Strongly Type Trong Việc Tạo Ra Input Control:
Control
Ví dụ
Check box
Html.CheckBoxFor(x => x.IsApproved) ->
Hidden field
Html.HiddenFor(x => x.SomeProperty)->
Radio button
Html.RadioButtonFor(x => x.IsApproved, "val") ->
Password
Html.PasswordFor(x => x.Password) ->
Text area
Html.TextAreaFor(x => x.Bio, 5, 20, new{}) ->
Text box
Html.TextBoxFor(x => x.Name) ->
Thêm Thuộc Tình Cho Các Thẻ Html:
Kết quả hiển thị như sau:
Nếu muốn thêm thuộc tính class ta có thể làm như sau:
Kết quả của câu lệnh trên như sau:
Hiển Thị Link Và Url:
Mô tả
Ví dụ
Đưa ra đường dẫn
Url.Content("~/Views/Shared/Do an tot nghiep.pdf")->
Link đến một action/controller
Html.ActionLink("Hi", "About", "Home") ->
Link tuyệt đối 
Html.ActionLink("Hi", "About", "Home", "https", 
"www.example.com", "anchor", new{}, null)->
Url của action
Url.Action("About", "Home") ->
Link đến route
Html.RouteLink("Hi", new { controller = "c", action = "a" }, 
null) ->
Chúng ta có thể thêm một số tham số mở rộng trong khi gọi route gọi là routeValues :
Html.ActionLink("Click me","MyAction",new{controller="Another", param = "val"})
Nội dung được hiển thị như sau:
Hiển Thị Dropdown List Và Multiselect Lists:
Mô tả 
Ví dụ
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"})) ->
Multiselect list
Html.ListBox("myList", new MultiSelectList(new [] {"A", "B"})) ->
Multiselect list
Html.ListBoxFor(x =>x.Vals,new MultiSelectList(new [] {"A", "B"}))->
Tạo một lớp Region như sau:
Trong action method tạo như sau:
Trong view thêm vào đoạn code : 
Kết quả hiển thị như sau:
2.5.Models:
Khi sử dụng Html helper, chúng sẽ hiển thị thành phần của form với tên và giá trị tương ứng với các thuộc tính trong model. Khi người dùng gửi request lên server hệ thống model binding sẽ so sánh dữ liệu đến với kiểu của đối tượng model, sau đó phân tách thành phần phù hợp với điều kiện validation.
Templated View Helper:
Cung cấp những tùy chọn để chúng ta có thể hiển thị hoặc sữa chữa một đối tượng model hay thuộc tính của nó nhưng không cần phải dùng đến yếu tố html, nó cho phép bạn hiển thị theo template của đối tượng hoặc thuộc tính của model.
Hiển Thị Và Sửa Chữa Model Sử Dụng Templated View Helper:
Tên
Ví dụ
Mục đích
Display
Html.Display("Title")
Hiển thị view chỉ đọc đặc tả thuộc tính của model,hiển thị template theo thuộc tính của kiểu đối tượng liên kết với nó.
DisplayFor
Html.DisplayFor(x => x.Title)
Sử dụng giống như trên nhưng có sử dụng strongly-type
DisplayForModel
Html.DisplayForModel()
Viết tắt của Html.DisplayFor(x => x.Title).Hiển thị view chỉ đọc đối với một đối tượng model.
Editor
Html.Editor("Title")
Hiển thị view để sửa chữa thuộc tính của model
EditorFor
Html.EditorFor(x => x.Title)
Sử dụng strongly-type
EditorForModel
Html.EditorForModel()
Viết tắt của Html.EditorFor(x => x.Title)
Label
Html.Label("Title")
Hiển thị thẻ html lable
LabelFor
Html.LabelFor(x => x.Title)
Sử dụng strongly-type
LabelForModel
Html.LabelForModel()
Viết tắt của Html.LabelFor(x => x.Title)
DisplayText
Html.DisplayText("Title")
Hiển thị chuổi đặc tả thuộc tính của model
DisplayTextFor
Html.DisplayTextFor(x => 
x.Title)
Sử dụng strongly-type
Tạo 2 lớp như sau:
Tạo view sử dụng strongly-type Person, thêm code như sau:
Kết quả hiển thị như sau:
Các lớp trong .Net chỉ cung cấp một số lượng có hạn các thông tin mà nó chứa, nó chỉ cung cấp loại và tên của các thuộc tính, Asp.Net MVC cung cấp model metadata để mở rộng thêm thông tin cho model, nó cung cấp việc làm thế nào để hiển thị dữ liệu để xem hay sửa chữa, cung cấp cách thức để xác nhận dữ liệu đến.
Tạo lớp Person như sau:
Khi hiển thị sẽ như sau:
Thay vì sử dụng Html.EditorForModel ta có thể sử dụng Html.Editor hoặc Html.EditorFor ta có thể sửa lại view như sau
Kết quả sẽ như sau:
Chú Thích Dữ Liệu:
Thuộc tính
Kết quả
[DisplayColumn]
Thuộc tính sẽ được hiển thị
[DataType]
Kiểu giá trị của dữ liệu
[ReadOnly]
Thuộc tính chỉ cho phép đọc
[DisplayFormat]
Định dạng khi hiển thị ví dụ: định dạng chuổi {0:c} hiển thị số theo dạng tiền tệ
[Required]
Thuộc tính bắt buộc phải có

File đính kèm:

  • docxBáo cáo thực tập mô hình MVC trong Asp.net.docx
Tài liệu liên quan