2 Ví dụ xây dựng ứng dụng với ASP.NET MVC Framework
2.5 Tìm hiểu về Views
Trong controller HomeController.cs, cả hai phương thức Index() và About() đều trả về một view. Một view chứa các thẻ HTML và được trả về cho browser. Trong mô hình MVC thì một view tương ứng với một trang .aspx trong WebForm.
View phải được tạo đúng vị trí đường dẫn. Ví dụ với controller HomeController.cs thì hành động HomeController.Index() trả về một view nằm ở vị trí đường dẫn \Views\Home\Index.aspx và HomeController.About() sẽ trả về một view nằm ở vị trí đường dẫn \Views\Home\About.aspx
View About.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs"
Inherits="HiTest.Views.Home.About" %>
<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
<h2>About Us</h2>
<p>
TODO: Put <em>about</em> content here. </p>
</asp:Content>
View Index.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs"
Inherits="HiTest.Views.Home.Index" %>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p> </asp:Content>
Tất cả các thuộc tính nằm giữa 2 thẻ <asp:Content></asp:Content> đều có định dạng HTML và có thể tùy ý sửa đổi theo ý muốn.
Tạo view cho controller SanPhamController.cs, trong SanPhamController.cs có 4 phương thứ c public là Index(), DanhMucLoaiSanPham(), DanhSachSanPham() và ChiTietSanPham() nên trong Views phải ta ̣o 4 view tương ứng là Index.aspx, DanhMucLoaiSanPham.aspx, DanhSachSanPham.aspx, ChiTietSanPham.aspx bằng cách từ
Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 17
folder Views click phải chuô ̣t cho ̣n Add New Folder nhập tên folder mới ta ̣o là SanPham. Từ folder SanPham click phải chuô ̣t cho ̣n Add View… (Figure 14) (ví dụ tạo view DanhMucLoaiSanPham)
Figure 14. Tạo view DanhMucLoaiSanPham trong folder SanPham
Index.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs"
Inherits="BanHang.Views.SanPham.Index" %>
<asp:Content ID="viewIndex" ContentPlaceHolderID="MainContent" runat="server">
<h1>Đây là trang chính của sản phẩm</h1> </asp:Content>
DanhMucLoaiSanPham.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true"
CodeBehind="DanhMucLoaiSanPham.aspx.cs"
Inherits="BanHang.Views.SanPham.DanhMucLoaiSanPham" %>
<asp:Content ID="viewDanhMucLoaiSanPham" ContentPlaceHolderID="MainContent" runat="server">
<h1>
Đây là danh mục loại sản phẩm</h1>
<% foreach (var lsp in ViewData.Model) { %> <li> <%= Html.ActionLink(lsp.TenLoaiSanPham, "DanhSachSanPham/" + lsp.TenLoaiSanPham, "SanPham") %> </li> <% } %> </asp:Content> DanhSachSanPham.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="DanhSachSanPham.aspx.cs"
Inherits="BanHang.Views.SanPham.DanhSachSanPham" %>
<asp:Content ID="viewDanhSachSanPham" ContentPlaceHolderID="MainContent" runat="server">
<h1>Đây là danh sách sản phẩm có trong chuyên mục</h1> </asp:Content>
Microsoft Vietnam – DPE Team |Bài số 3: Tổng quan về ASP.NET MVC Framework 18
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="ChiTietSanPham.aspx.cs"
Inherits="BanHang.Views.SanPham.ChiTietSanPham" %>
<asp:Content ID="viewChiTietSanPham" ContentPlaceHolderID="MainContent" runat="server">
<h1>Đây là Chi tiết sản phẩm</h1> </asp:Content>