TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM
KHOA CÔNG NGHỆ THÔNG TIN
  
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ 
ỨNG DỤNG CÔNG NGHỆ MVC CỦA ASP.NET
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: HỆ THỐNG THÔNG TIN
Giảng viên hướng dẫn: ThS.NGUYỄN LƯƠNG ANH TUẤN
 Sinh viên thực hiện :
1. ĐỖ LONG HƯNG
MSSV: 11L1120027 LỚP: CN11LT
2. PHẠM TIẾN TRUNG
MSSV: 11L1120070 LỚP CN11LT
TP. Hồ Chí Minh, 2013
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM
LỜI CAM ĐOAN
Chúng em xin cam đoan đây là bài luận văn tốt nghiệp do chúng em tự tìm 
hiểu, tự viết ra sản phẩm, không hề sao chép của bất kỳ ai.
Chúng em hoàn toàn chịu trách nhiệm về lời cam đoan của mình !
TP.Hồ Chí Minh, ngày 25 tháng 12 năm 2013
Sinh viên thực hiện
 Đỗ Long Hưng
 Phạm Tiến Trung
LỜI CÁM ƠN
Trong suốt quá trình chúng em thực hiện Luận văn tốt nghiệp, chúng em 
luôn nhận được sự quan tâm giúp đỡ của quý thầy cô, ban chủ nhiệm Khoa Công 
nghệ thông tin và Nhà trường. Chúng em xin chân thành cảm ơn sự giúp đỡ quý 
báu này.
Chúng em xin bày tỏ lòng biết ơn sâu sắc tới ThS.Nguyễn Lương Anh Tuấn, 
người đã dành nhiều sự quan tâm, giúp đỡ, hướng dẫn chúng em hoàn thành luận 
văn tốt nghiệp.
Nhóm chúng em xin gửi lời cám ơn đến các bạn trong lớp CN11LT đã giúp 
đỡ trong quá trình làm luận văn tốt nghiệp.
Chúng em cũng xin gửi lời cám ơn đến Công ty TNHH Thương mại Dịch vụ 
Viễn thông Quang Thành đã giúp đỡ nhóm hoàn thành đồ án tốt nghiệp.
Do thời gian học tập và nghiên cứu có hạn, nhận thức còn hạn chế, nên đồ 
án tốt nghiệp chắc chắc còn nhiều thiếu sót, kính mong được các thày cô chỉ bảo 
và giúp đỡ.
Chúng em xin chân thành cảm ơn!
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN                    
            NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN                 
               Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
 MỤC LỤC
TRANG BÌA
TRANG BÌA PHỤ
LỜI CAM ĐOAN
LỜI CÁM ƠN
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM_________________1
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM_________________1
 MỤC LỤC_____________________________i
TRANG BÌA______________________________________________________i
TRANG BÌA PHỤ__________________________________________________i
LỜI CAM ĐOAN__________________________________________________i
LỜI CÁM ƠN_____________________________________________________i
DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ______________________________ii
DANH MỤC CÁC TỪ VIẾT TẮT____________________________________iv
PHẦN MỞ ĐẦU___________________________________________________1
CHƯƠNG 1: TÌM HIỂU VỀ MÔ HÌNH ASP.NET – MVC_________________4
CHƯƠNG 2: MÔ HÌNH CƠ SỞ DỮ LIỆU_____________________________31
________________________________________________________________36
CHƯƠNG 3: CẤU TRÚC WEBSITE_________________________________37
CHƯƠNG 4: DEMO SẢN PHẨM____________________________________40
KẾT LUẬN______________________________________________________62
TÀI LIỆU THAM KHẢO
i
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
DANH MỤC BẢNG BIỂU VÀ HÌNH VẼ
Bảng 1.1: Lịch sử phát triển của công nghệ ASP.NET MVC Trang 5
Bảng 1.2: So sánh mô hình Webform và MVC Trang 9
Bảng 1.3: Liệt kê các kiểu action result và các phương thức hỗ trợ để trả về. Trang 16
Hình 1.1: Mô hình MVC Trang 5
Hình 1.2: Cách thức làm việc của mô hình MVC Trang 7
Hình 1.3: So sánh mô hình MVC và 3 Layer Trang 10
Hình 1.4: Cấu trúc của mô hình MVC4 Trang 12
Hình 1.5: Mô hình xử lý của MVC4 Trang 28
Hình 1.6: ASP.NET MVC4 trong Visual Stuido 2012 Trang 29
Hình 2.1: Mô hình quan hệ dữ liệu Trang 37
Hình 3.1: Dự án MVC 4 Trang 38
Hình 3.3: Mô hình chức năng của Website Trang 40
Hình 4.1: Trang chủ Trang 41
Hình 4.2: Trang bảo hành Trang 42
Hình 4.3: Trang liên hệ Trang 43
ii
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 4.4: Trang quản trị Trang 43
Hình 4.5: Trang chi tiết sản phẩm Trang 44
Hình 4.6: Logo Trang 45
Hình 4.7: Danh mục sản phẩm Trang 45
Hình 4.8: Thanh menu và Banner Trang 46
Hình 4.9: Gian hàng tại trang chủ Trang 47
Hình 4.10: Gian hàng theo hãng sản phẩm Trang 48
Hình 4.11: Gian hàng bán chạy Trang 49
Hình 4.12: Đăng ký tài khoản Trang 50
Hình 4.13: Đăng nhập tài khoản Trang 51
Hình 4.14: Đăng nhập thành công Trang 51
Hình 4.15: Bắt đầu tìm kiếm theo tên Trang 51
Hình 4.16: Kết quả tìm kiếm theo tên Trang 52
Hình 4.17: Bắt đầu tìm kiếm nâng cao Trang 53
Hình 4.18: Kết quả tìm kiếm nâng cao Trang 53
Hình 4.19: Giỏ hàng Trang 54
Hình 4.20: Bắt đầu giỏ hàng Trang 54
Hình 4.21: Giỏ hàng của khách Trang 55
Hình 4.22: Tiến hành đặt hàng Trang 55
Hình 4.23: Đặt hàng thành công Trang 56
Hình 4.24: Trang quản trị Trang 56
Hình 4.25: Quản lý đơn hàng Trang 57
Hình 4.26: Chi tiết và xóa đơn hàng Trang 57
Hình 4.27: Quản lý danh mục, xóa danh mục Trang 58
Hình 4.28: Thêm và sửa danh mục Trang 59
Hình 4.29: Quản lý sản phẩm, xóa sản phẩm Trang 59
Hình 4.30: Thêm và sửa sản phẩm Trang 60
iii
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 4.31: Quản lý đăng nhập, xóa tài khoản Trang 61
Hình 4.32: Thêm và sửa tài khoản Trang 61
Hình 4.33: Quản lý liên hệ Trang 62
Hình 4.34: Lượng truy cập Trang 62
Hình 4.35: Hỗ trợ trực tuyến Trang 62
DANH MỤC CÁC TỪ VIẾT TẮT
ASP Active Server Pages
HTML HyperText Markup Language
UI User Interface
VB Visual Basic
TDD Test Driven Development
URL Uniform Resource Locator
DI Dependency Injection
IOC Inversion Of Control
OMR Object-Relational Mapping
DF Database First
MF Model First
DDL Data Definition Language
iv
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
CF Code First
API Application Programming Interface
CSS Cascading Style Sheets
DOM Doucument Object Model
EBML Extensible Binary Meta Language
XML Extensible Markup Language
CSDL Cơ sở dữ liệu
v
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài.
Hiện nay việc thiết kế trang web Asp.Net là rất dễ dàng đối với các lập trình 
viên, chúng ta có thể tìm các tài liệu hướng dẫn, tham khảo các project để nghiên cứu 
và phát triển. Microsoft muốn tạo ra công cụ để người sử dụng dễ dàng làm việc và xây 
dựng trang web nhanh chóng nhất. 
Asp.net Webform được thiết kế để thực hiện điều đó. Asp.net Webform được 
thiết kế để người viết cảm thấy như đang thiết kế một chương trình winform vậy, bằng 
cách kéo thả các button, textbox , tự sinh mã html, đơn giản và dễ hiểu. Chính vì thế 
Asp.net Webform dù đã ra đời cách đây hơn mười năm nhưng vẫn còn được dùng cho 
tới ngày nay. 
Nhưng Asp.net Webform lại có những nhược điểm, việc dùng các webcontrol 
sinh ra các event để thực hiện cho UI(user interface) khi có sự tương tác với người 
dùng thì tiến trình diễn ra chậm, gây ra các hạn chế. Việc sử dụng ViewState để quan 
lý các trang web đều có lifecycle, postback. 
Asp.net MVC chính là sự lựa chọn hợp lý thay thế cho Asp.net Webform, nó đã 
và đang trở nên phổ biến và sẽ thành nền tảng để xây dựng website trong thời gian tới 
đây. Những ưu điểm của Asp.net MVC là phân tích rõ ràng 3 thành phần chính là: 
Model(lớp dữ liệu), View(lớp giao diện), Controller(lớp điều khiển), cung cấp nhiều cơ 
chế xử lý Request khác nhau, dựa trên nền tảng Asp.net vốn đã rất mạnh mẽ, ngoài ra 
còn hỗ trợ nhiều View engine, cơ chế định tuyến Routing mềm dẻo giúp người phát 
triển có thể tạo các URL thân thiện với người dùng cũng như với SEO. Với cấu trúc 3 
lớp như trên thì việc nâng cấp, sữa chữa hay thay đổi các chức năng trở nên dễ dàng 
hơn và cũng giúp cho việc xây dựng website chặt chẽ, rõ ràng, dễ hiểu hơn.
Vào giữa năm 2013 thì công nghệ mới nhất là ASP.NET MVC 4.0 đã ra đời, 
được tích hợp sẵn trong bản Visual Studio 2012. Nó còn rất mới mẻ đối với các bạn 
1
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
sinh viên cũng như những người phát triển Website. Chính vì thế, nhóm em đã mạnh 
dạn chọn đề tài "Xây dựng Website thương mại điện tử ứng dụng công nghệ MVC 
của ASP.NET" để làm đề tài báo cáo tốt nghiệp của mình.
2. Tình hình nghiên cứu.
Hiện nay các tài liệu về MVC là không nhiều và tài liệu về MVC4 bằng tiếng việt 
thì càng hiếm. Vì thế chúng em gặp nhiều khó khăn trong việc tìm hiểu và hầu hết là 
tham khảo các tài liệu tiếng anh. Nhưng quan trọng là chúng em cũng đã nắm được về 
công nghệ mới này.
3. Mục đích nghiên cứu:
• Học hỏi công nghệ, kiến thức mới.
• Phục vụ cho việc xây dựng website thương mại điện tử bằng công nghệ MVC 4.
4. Nhiệm vụ nghiên cứu:
• ASP.NET MVC 4.0.
• Xây dựng website thương mại điện tử.
5. Phương pháp nghiên cứu:
• Nghiên cứu lý thuyết thông qua các bài báo, tài liệu trên mạng.
• Thông qua các demo hướng dẫn trên internet.
• Tổng hợp kiến thức và dữ liệu thực tế.
6. Ý nghĩa khoa học và thực tiễn:
• Hiện nay ASP.NET MVC 4 là công nghệ mới nhất và có thể ít các bạn biết đến, 
chính vì thế khi hoàn thành luận văn tốt nghiệp này sẽ là một tài liệu nhỏ giúp 
các bạn sinh viên và những người đam mê thiết kế Website có thể nghiên cứu và 
phát triển.
• Công nghệ ASP.NET MVC 4 có nhiều ưu điểm vượt trội và chắc chắn sẽ thay 
thế cho Asp.net Webform trong tương lai gần. Vì thế áp dụng ASP.NET MVC 4 
vào thực tiễn có một ý nghĩa rất lớn.
2
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
7. Các kết quả đạt được.
• Tìm hiểu được công nghệ ASP.NET MVC 4.
• Xây dựng được Website thương mại điện tử theo công nghệ MVC4.0 với đầy đủ 
các chức năng cần thiết.
8. Cấu trúc của luận văn.
• Chương 1: Tìm hiểu về mô hình ASP.NET MVC.
• Chương 2: Mô hình cơ sở dữ liệu.
• Chương 3: Cấu trúc của Website
• Chương 4: Demo sản phẩm
3
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
CHƯƠNG 1: TÌM HIỂU VỀ MÔ HÌNH ASP.NET – MVC
1.1. Lịch sử phát triển của ASP.NET MVC.
Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khá mới mẻ với 
tên gọi ban đầu là ASP+, tên chính thức sau này là ASP.NET. Với ASP.NET, không 
những không cần đòi hỏi bạn phải biết các tab HTML, thiết kế web, mà nó còn hỗ trợ 
mạnh lập trình hướng đối tượng trong quá trình xây dựng và phát triển ứng dụng Web.
ASP.NET là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server 
(Server-side) dựa trên nền tảng của Microsoft .Net Framework.
Công nghệ ASP.NET MVC là công nghệ mới hiện nay, tuy nhiên nó có lịch sử 
lâu đời. Nền tảng MVC được phát minh bởi Trygve Renskaug, ông đã viết trang giấy 
đầu tiên nói về MVC vào năm 1978. Ban đầu nó được gọi là Thing Model View Editor 
pattern, nhưng sau đó nó được đặt tên lại là Model View Controller pattern. ASP.NET 
MVC lần đầu tiên xuất hiện đó là trong dự án mã nguồn mở MonoRail. Và nguồn gốc 
thật sự để cho ra đời công nghệ Microsoft ASP.NET MVC là do Scott Guthrie(một 
trong những nhà sáng tạo ra ASP.NET) trên chuyến bay đến Austin, Texas để nói về 
hội thảo Alt.NET vào tháng 10-2007. Cuối cùng thì đầu năm 2009 phiên bản ASP.NET 
MVC 1.0 (released) được ra đời. Các năm sau đó các phiên bản tiếp theo ra đời với 
những tính năng nổi trội. 
ASP.NET MVC là nền tảng công nghệ mới nhất của Microsoft hiện, nó được 
thiết kế từ suy nghĩ là làm thế nào để xây dựng một phần mềm tốt (phần mềm tốt là 
phần mềm bạn muốn tạo ra và nó dễ dàng được thay đổi -Stephen Walther). ASP.NET 
MVC được thiết kế để làm sao có thể bổ sung các nguyên lý và các patterns phát triển 
phần mềm khi xây dựng các ứng dụng web. Bên cạnh đó, nó được thiết kế để hỗ trợ 
trong việc kiểm thử. 
4
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Bảng 1: Lịch sử phát triển của công nghệ ASP.NET MVC
Năm ra đời Công nghệ
1996 ASP(Active Server Pages)
2002 ASP.NET 1.0
2005 ASP.NET 2.0
2007 ASP.NET AJAX
2008 ASP.NET 3.5
2009 ASP.NET MVC 1.0
2010 ASP.NET 4.0
ASP.NET MVC 2.0
2011 ASP.NET MVC 3.0
2012 ASP.NET 4.5
2013 ASP.NET MVC 4.0
1.2.Tổng quan về MVC.
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô 
hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách 
ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller (Hình 1.1). 
Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác. 
Hình 1.1. Mô hình MVC
 Model 
Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất 
database, đối tượng mô tả dữ liệu như các Class, hàm xử lý 
 View 
5
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các 
đối tượng GUI như textbox, images Hiểu một cách đơn giản, nó là tập hợp các form 
hoặc các file HTML. 
 Controller 
Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những 
phương thức xử lý chúng Chẳng hạn thành phần này sẽ nhận request từ url và form 
để thao tác trực tiếp với Model. 
 MVC làm việc như thế nào ? 
• Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC: 
• User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi. 
• Controller nhận, xử lý và điều hướng chúng đến đúng phương thức xử lý ở 
Model. 
• Model nhận thông tin và thực thi các yêu cầu. 
• Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại 
cho người dùng. 
6
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 1.2: Cách thức làm việc của MVC
1.3.Mô hình ASP.NET truyền thống (mô hình Web Form) 
Dựa trên nền .NET hỗ trợ đa ngôn ngữ như C#, VB.NET,… Microsoft hướng 
đến việc giấu đi giao thức HTTP (ẩn đi bản chất bên trong) và code HTML bằng việc 
đưa ra mô hình UI (user interface) như là các đối tượng control phía server (mỗi 
control có trạng thái của riêng mình, tự động sinh mã HTML khi cần, và tự động kết 
nối với các sự kiện phía client). Các nhà phát triển Web không còn phải làm việc với 
các request và response trong từng HTTP độc lập. Thay thế nó chính là thuật ngữ 
StateFull UI(tạm dịch là trạng thái giao diện người dùng). Các nhà phát triển Web chỉ 
cần kéo-thả, và tưởng tượng ra điều gì sẽ xảy ra trên server khi thiết kế giao diện Web 
Nhược điểm: 
• ViewState: là cơ chế chính để duy trì trạng thái qua mỗi lần request, điều này 
dẫn đến một khối lượng dữ liệu lớn được truyền đi giữa client-server. 
7
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
• Chu kì sống của 1 trang web: là cơ chế kết nối giữa trình điều khiển sự kiện 
client và server, điều này có thể trở nên phức tạp, và dễ phá vỡ. 
• Các control bị giới hạn trên mã HTML: vài control server sinh mã HTML, 
nhưng đó không phải là mã HTML mà ta mong muốn. Ví dụ vài control server 
sinh ra giá trị ID phức tạp, và khó truy xuất bởi JavaScript. 
• Cảm nhận sai trong việc phân tách code ra khỏi mã HTML bằng cách tạo 
code-behind bên dưới trang: Trong thực tế thì các nhà phát triển Web đã khuyến 
khích nên trộn việc trình bày code (ví dụ: việc quản lý control phía server) với 
tính logic trong ứng dụng của họ (ví dụ: thao tác cơ sở dữ liệu) với nhau. Tốt 
hơn hết là không nên tách riêng chúng ra vì kết quả thường là khó hiểu và dễ vỡ. 
• Không thể kiểm thử: Khi lần đầu tiên các nhà thiết kế ASP.NET đưa ra nền thiết 
kế của họ, họ không thể lường trước việc kiểm thử sẽ trở thành xu hướng phát 
triển phần mềm hiện nay. Và kiến trúc họ xây dựng không hoàn toàn thích hợp 
với việc kiểm thử tự động.
1.4.Mô hình ASP.NET MVC 
1.4.1.Đặc điểm chung của mô hình ASP.NET MVC 
• Tách biệt các thành phần của ứng dụng(logic đầu vào, logic nghiệp vụ và logic 
giao diện), hỗ trợ kiểm thử và test-driven development (TDD) 
• Mô hình mở và tùy biến cao. Các thành phần của ASP.NET MVC được thiết kế 
để có thể dễ dàng thay thế và tùy biến. Người dùng có thể thiết lập theo cách 
riêng của mình bằng việc sử dụng engineer view riêng, định tuyến 
URL(routing), và các thành phần khác. ASP.NET MVC cũng hỗ trợ việc sử 
dụng Dependency Injection (DI) và Inversion of Control (IOC). DI cho phép 
người lập trình thêm các đối tượng vào class thay vì từ class tạo ra các đối tượng 
của chính nó. IOC quy định rằng nếu một đối tượng truy vấn đến một đối tượng 
8
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
khác, đối tượng thứ nhất sẽ coi như đối tượng thứ 2 là một tập tin cấu hình. Điều 
này giúp việc kiểm thử dễ dàng hơn.
• Hỗ trợ việc tùy biến URL mạnh mẽ thông qua việc định tuyến. URL không cần 
đuôi mở rộng, ánh xạ đến các contronller. Giúp tăng cường các hoạt động SEO. 
• Thừa kế các tính năng của ASP.NET truyền thống, hỗ trợ xác thực form, phân 
quyền, tạo phiên đăng nhâp… 
Bảng 1.2: So sánh mô hình Webform và MVC
Tính năng ASP.NET ASP.NET MVC 
Kiến trúc chương trình Kiến trúc mô hình 3 lớp 
WebForm: Presentation 
-Business - Data Access 
Kiến trúc sử dụng việc 
phân chia chương trình 
thành Controllers, Models, 
Views
Cú pháp chương trình Sử dụng cú pháp của 
webform, tất cả các sự kiện 
và controls do server quản 
lý 
Các sự kiện được điều 
khiển bởi controllers, các 
controls không do server 
quản lý 
Truy cập dữ liệu Sử dụng hầu hết các công 
nghệ truy cập dữ liệu trong 
ứng dụng 
Phần lớn dùng LINQ to 
SQL class để tạo mô hình 
truy cập đối tượng 
Debug Debug chương trình phải 
thực hiện tất cả bao gồm 
các lớp truy cập dữ liệu, sự 
hiển thị, điều khiển các 
controls 
Debug có thể sử dụng các 
unit test kiểm tra các 
phương thức trong 
controller 
Tốc độ tải Tốc độ tải chậm khi trong 
trang có quá nhiều các 
Tải nhanh hơn do không 
phải quản lý ViewState để 
9
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
controls vì ViewState quá 
lớn. 
quản lý các control trong 
trang 
Tương tác với Javascript Khó khăn Dễ dàng
URL Address Cấu trúc địa chỉ URL có 
dạng <filename>.aspx?
&<tên tham số=tham số> 
Cấu trúc địa chỉ rành mạch 
theo dạng 
Controllers/Action/Id 
1.4.2.So sánh mô hình MVC và mô hình 3 lớp thông thường.
Giống nhau: Tách rời Programming core/business logic ra khỏi những phụ thuộc về tài 
nguyên và môi trường.
Presentation Layer thể hiện giống như chức năng của View và Controller
Business Layer và Data Access Layer thể hiện giống như chức năng của Model
Khác nhau
Hình 1.3: So sánh mô hình MVC và 3 Layer
Trong mô hình 3 lớp thông thường, việc xử lý sẽ đi từ trên xuống dưới rồi từ 
dưới đi lên, đi qua lần lượt các tầng, nên việc thực thi sẽ phưc tạp hơn,
10
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Còn trong mô hình MVC, Model-View-Controller sẽ thực thi các thao tác với 
nhau mà không cần phải qua lần lượt các tầng.
1.4.3 Kiến trúc 
Trong mô hình ASP.NET truyền thống, URL thường được ánh xạ đến các file 
cụ thể có trên server(ví dụ như file .aspx). Những file này chứa các mã xử lý yêu cầu từ 
client. 
Ở ASP.NET MVC, việc ánh xạ URL hoàn toàn khác với mô hình truyền thống. 
Thay vì ánh xạ URL đến một trang .aspx cụ thể, nó được ánh xạ đến 1 lớp Controller. 
Lớp này xử lí yêu cầu gửi đến, sau đó chuyển kết quả xử lí này đến một giao diện 
HTML để hiển thị cho người dùng. 
ASP.NET MVC phân tách hệ thống thành ba phần Model, View và Controller. 
Model đại diện cho logic xử lí nghiệp vụ/phạm vi của ứng dụng, thường gắn liền với 
cơ sở dữ liệu. View được gọi từ Controller, là giao diện tương tác với người dùng. Mặc 
định ASP.NET MVC sử dụng các trang .aspx, master page .master) hay user control 
(.ascx) để hiển thị phía trình duyệt. Controller nhận giá trị gửi lên từ client, từ đấy chọn 
action method phù hợp để xử lí.
1.4.4.Định tuyến URL (URL Routing) 
Mô hình ASP.NET MVC sử dụng các engine định tuyến ASP.NET, cung cấp 
linh hoạt các ánh xạ các URL đến các Controller. Người dùng có thể đặt ra các quy tắc 
định tuyến riêng của mình để xử lí các URL theo các Controller mong muốn
1.4.5.Mô hình MVC và Postback 
ASP.NET MVC không sử dụng mô hình postback của ASP.NET Web Form để 
tương tác với server. Thay vào đó tất cả các tương tác vủa người dùng được chuyển 
đến một Controller. Điều này tách biệt giữa giao diện và xử lí nghiệp vụ, tăng cường 
khả năng kiểm thử. Đỗng nghĩa với việc View state của ASP.NET và vòng đời trong 
Web Form không được tích hợp vào mô hình MVC.
Mặc định, một ứng dụng MVC sẽ bao gồm các thư mục sau: 
11
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
Hình 1.4: Cấu trúc mô hình MVC 4
• App_Data, thư mục lưu trữ dữ liệu, chẳng hạn như CSDL 
• Content, được khuyến nghị dùng để lưu các file css, hình ảnh… 
12
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
• Controllers, thư mục lưu các Controller. ASP.NET MVC đặt tên các controller 
có kết thúc là Controller, chẳng hạn như HomeController, LoginController, hay 
ProductController. 
• Models, lưu các class đại diện cho các đối tượng của ứng dụng
• Scripts, lưu các file java script hỗ trợ cho ứng dụng, mặc định nó đã chức các 
file có sẵn của Asp.NET MVC 
• Views, lưu các file hiển thị giao dện người dùng, như HTML, CSHTML, 
.aspx… 
Ngoài ra trong thư mục mặc định còn có các file Global.asax để định tuyến 
URL, file Web.config để cấu hình ứng dụng. 
1.4.6.Ưu điểm của MVC
• Phát triển phần mềm: có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm 
được đào tạo nhiều kỹ năng khác nhau, từ việc thiết kế cho đến lập trình tổ chức 
database. Giúp phát triển ứng dụng nhanh hơn, đơn giản hơn, dễ nâng cấp 
• Bảo trì: Với các lớp được phân chia như đã nói, thì các thành phần của một hệ 
thống dễ dàng được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng 
lớp hoặc chỉ ảnh hưởng nhỏ tới lớp ngay gần kề nó chứ không làm phát tán, náo 
loạn cho cả chương trình.
• Mở rộng: Với các lớp được phân chia như đã nói, việc thêm chức năng mới vào 
từng lớp sẽ dễ dàng hơn. Vì các lớp này hoạt động dường như độc lập. 
1.4.7.Nhược điểm của MVC
• Đối với các dự án nhỏ thì việc áp dụng mô hình MVC là một sự lãng phí.
1.5.Controller và Routing 
1.5.1 Controller và Action Method 
 Controller 
13
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
ASP.NET MVC ánh xạ URL đến các lớp gọi là Controller. Controller xử lý yêu 
cầu gửi đến, các đầu vào của người dùng và tương tác, trả về các giao diện sử dụng 
thích hợp. Một Controller thường gọi đến một thành phần View để sinh mã HTML trả 
về. 
Lớp cơ sở cho tất cả các Controller là lớp ControllerBase, cung cấp các xử lí 
MVC. Controller kế thừa từ ControllerBase. Controller chịu trách nhiêm cho các giai 
đoạn xử lí sau đây: 
• Định vị các Action Method thích hợp để gọi và xác nhận rằng nó có thể được 
gọi 
• Nhận các giá trị để sử dụng như tham số của Action Method 
• Xử lí các lỗi xảy ra trong khi thực hiện Action Method 
• Cung cấp lớp WebFormViewEngine để sinh thành phần View 
Tất cả Controller đều phải đặt tên có hậu tố “Controller”. Ví dụ sau đây mô tả 
HomeController, Controller này chứa các Action Method, sinh ra các View.
[HandleError] 
public class HomeController : Controller 
{ 
public ActionResult Index() 
{ 
ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
return View(); 
} 
public ActionResult About() 
{ 
return View(); 
} 
}
14
Luận văn tốt nghiệp GVHD: ThS.Nguyễn Lương Anh Tuấn
 Action Method 
Trong các ứng dụng ASP.NET không sử dụng nền tảng MVC, sự tương tác của 
người dùng được tổ chức theo các trang và theo việc phát ra và quản lý các sự kiện của 
trang và các điều khiển trên trang đó. Để so sánh, thì với các mô hình MVC, sự tương 
tác với người dùng được tổ chức theo các controllers và các action của chúng. Lớp 
controller sẽ định nghĩa các phương thức action. Các controller có thể có bao nhiêu 
action tùy nhu cầu.
Các phương thức action thường được ánh xạ 1-1 với các tương tác của người 
dùng. Ví dụ như người dùng điền một URL vào trình duyệt, hoặc nhấn vào một liên 
kết, hoặc gởi lên một form. Các tương tác nói trên tạo ra request được gởi lên cho 
server. Khi đó, URL của request được gởi lên sẽ có các thông tin mà nền tảng MVC sẽ 
sử dụng để tìm kiếm và thực thi phương thức action. 
Khi người dùng gõ một URL vào trình duyệt, ứng dụng MVC sẽ sử dụng các 
quy tắc định tuyến (routing rules) được định nghĩa ở tập tin Global.asax để phân tích 
URL và xác định đường dẫn của controller. Sau đó controller sẽ xác định action tương 
ứng để xử lý request. Ví dụ như, trong trường người dùng gõ vào địa chỉ URL là 
 thì đường dẫn con sẽ như sau: 
/Products/Categories. Tuyến mặc định (default routing) sẽ xem Products như là phần 
tiền tố của tên controller, nghĩa là controller được chọn có tên là ProductsController. 
Và “Categories” được xem như là tên của action, như vậy thì phương thức Categories 
của ProductsController sẽ được thực thi để xử lý request. Nếu URL kết thúc bằng 
/Products/Detail/5 tuyến mặc định sẽ xem như Detail là tên của Acion, và phương thức 
Detail của ProductController sẽ được gọi để xử lú request. Theo tuyến mặc định, thì giá 
trị “5” trong URL sẽ được truyền vào phương thức Detail như là một tham số.
Ví dụ dưới đây cho thấy cài đặt của một action có tên là CN11LT
public class MyController : Controller 
15