Tìm kiếm Blog này

Thứ Bảy, 15 tháng 1, 2011

ASP.NET - MVC - ASP và MVC Chapter 3 - Part 5

2.6 Tìm hiểu về Models

Một model trong ứng dụng ASP.NET MVC chứa tất cả các nghiệp vụ logic mà không có trong controllers và views. Models chứa tất cả các tầng truy xuất dữ liệu logic và tầng nghiệp vụ logic. Ví dụ, nếu sử dụng LINQ to SQL để truy nhập dữ liệu thì phải tạo LINQ to SQL class ( file định dạng dbml ) trong folder Models.
Mô hinh dư liêu LINQ to SQL ( Figure 15 ) 
 Figure 15. Mô hinh dư liêu LINQ to SQL
DataClasses.cs
01.using System;
02.using System.Collections.Generic;
03.using System.Linq;
04.namespace BanHang.Models
05.
06. 
07.partial class DataClassesDataContext
08.{
09.public List<LoaiSanPham> LayCacLoaiSanPham()
10.{
11.return LoaiSanPhams.ToList();
12.}
13.public List<SanPham> LaySanPhamTuLoaiSanPham(string loaisanpham)
14.{
15.return SanPhams.Where(l => l.LoaiSanPham1.Id == loaisanpham).ToList();
16.}
17.public SanPham LaySanPhamQuaID(int id)
18.{
19.return SanPhams.Single(s => s.Id == id);
20.}
21.}
22.}
Vơi lơp trơ giup co thê thao tac dê dang hơn vơi cơ sơ dư liêu khi cân . Chăng han vơi lơp DataClasses.cs ở trên khi cân truy nhâp đê lây thông tin vê san phâm co ma Id , có thể viết như sau trong bất kỳ một code -behind nao của Views (ví dụ với view DanhMucLoaiSanPham.aspx.cs trong folder Views):
 
Figure 16. Binding data vao trong Views\DanhMucLoaiSanPham.aspx.cs Khi đo ta phai sưa đôi lai file Views\DanhMucLoaiSanPham.aspx cho phu hơp vơi code trên
01.<%@ Page Title="" Language="C#"MasterPageFile="~/Views/Shared/Site.Master"AutoEventWireup="true"
02.CodeBehind="DanhMucLoaiSanPham.aspx.cs"Inherits="BanHang.Views.SanPham.DanhMucLoaiSanPham" %>
03.<asp:Content ID="viewDanhMucLoaiSanPham"ContentPlaceHolderID="MainContent" runat="server">
04. 
05.<h1>
06.Đây làdanh mục loại sản phẩm</h1>
07.<asp:ListView ID="listLoaiSanPham" runat="server">
08.<LayoutTemplate>
09.<ul>
10.<asp<img src="http://bandd.biz/plugins/system/yvsmiley/phpbb/icon_razz.gif"alt="Razz" class="yvSmiley">laceHolder ID="itemPlaceHolder"
11.runat="server"></asp<img src="http://bandd.biz/plugins/system/yvsmiley/phpbb/icon_razz.gif"alt="Razz" class="yvSmiley">laceHolder>
12.</ul>
13.</LayoutTemplate>
14.<ItemTemplate>
15.<li>
16.<% = Html.ActionLink(Eval("TenLoaiSanPham"), "DanhSachSanPham/" +
17.Eval("TenLoaiSanPham"), "SanPham") %> 
18.</li>
19.</ItemTemplate>
20.</asp:ListView>
21.</asp:Content>

Views chỉ chứa tất cả những gì hiển thị cho người dùng trên browser, Controllers chỉ chứa các logic mà trả về view nào cho người dùng hoặc hướng từ action này đến action khác. Còn lại tất cả đều được viết trong Models.

Không có nhận xét nào:

Đăng nhận xét