Chỉnh sửa dữ liệu với MVC - · PDF file 2016. 1. 28. · Microsoft Vietnam...

Click here to load reader

  • date post

    13-Feb-2021
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Chỉnh sửa dữ liệu với MVC - · PDF file 2016. 1. 28. · Microsoft Vietnam...

  • Bài số 5

    Chỉnh sửa dữ liệu với MVC

    Table of Contents 1 Thêm mới dữ liệu trong MVC .......................................................................................... 2

    2 Sửa đổi dữ liêụ trong MVC .................................................................................................. 5

    3 Xây dựng quy triǹh test trong ứng duṇg ASP.NET MVC ................................................ 9

    3.1 Tạo một controller để test. ........................................................................................... 10

    3.2 Test một view được trả về từ một controller................................................................ 14

    3.3 Test một ViewData được trả về từ một controller ....................................................... 15

    3.4 Test một Result Action được trả về từ một controller ................................................. 16

    4 Tài liệu tham khảo ............................................................................................................... 16

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 2

    1 Thêm mới dữ liệu trong MVC Sử dụng ứng dụng BanHang đã có:

    Figure 1. Sửa đổi controller SanPhamController.cs

    Thêm môṭ phương thức trong Models\DataClasses.cs thưc̣ hiêṇ ghi nhâṇ thêm mới vào cơ sở dữ liêụ.

    Models\DataClasses.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    namespace BanHang.Models

    {

    partial class DataClassesDataContext

    {

    public List LayCacLoaiSanPham()

    {

    return LoaiSanPhams.ToList();

    }

    public List LaySanPhamTuLoaiSanPham(int id)

    {

    return SanPhams.Where(l => l.LoaiSanPham == id).ToList();

    }

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 3

    public SanPham LaySanPhamTuID(int id)

    {

    return SanPhams.Single(s => s.Id == id);

    }

    public void ThemMoiSanPham(SanPham sp)

    {

    SanPhams.InsertOnSubmit(sp);

    }

    }

    }

    Thiết lập 2 phương thức thêm mới dữ liệu trong lớp SanPhamController.cs là ThemMoiSanPham và

    Create. Phương thức ThemMoiSanPham trả về một Views cho phép người sử dụng nhập nội dung sản

    phẩm, còn phương thức Create sẽ thực thi công việc thêm mới sản phẩm khi người dùng nhấn nút để

    submit dữ liêụ.

    SanPhamController.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    using System.Web.Mvc.Ajax;

    using BanHang.Models;

    namespace BanHang.Controllers

    {

    public class SanPhamController : Controller

    {

    DataClassesDataContext data = new DataClassesDataContext();

    public ActionResult Index()

    {

    // Add action logic here

    ViewData["Title"] = "Sản phâm̉";

    return RedirectToAction("DanhMucLoaiSanPham");

    }

    public ActionResult DanhMucLoaiSanPham()

    {

    // Code cua ban o day

    ViewData["Title"] = "Danh muc̣ loaị san̉ phâm̉";

    List lsp = data.LoaiSanPhams.ToList();

    return View("DanhMucLoaiSanPham", lsp);

    }

    public ActionResult DanhSachSanPham(int id)

    {

    ViewData["Title"] = "Danh saćh san̉ phâm̉ trong loaị san̉ phâm̉";

    List sp = data.LaySanPhamTuLoaiSanPham(id);

    return View("DanhSachSanPham", sp);

    //DuLieuDanhSachSanPham sp = new DuLieuDanhSachSanPham();

    //ViewData.TenLoaiSanPham = loaisanpham;

    //ViewData.SanPham = data.LaySanPhamTuLoaiSanPham(loaisanpham);

    //return View("DanhSachSanPham", ViewData);

    }

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 4

    public ActionResult ChiTietSanPham(int id)

    {

    ViewData["Title"] = "Chi tiết sản phẩm";

    SanPham ctsp = data.LaySanPhamTuID(id);

    return View("ChiTietSanPham", ctsp);

    }

    public ActionResult ThemMoiSanPham()

    {

    ViewData["Title"] = "Thêm mới sản phẩm";

    //List dulieu = data.LayCacLoaiSanPham();

    var loaiSanpham = from c in data.LoaiSanPhams select c;

    ViewData["lsp"] = new SelectList(loaiSanpham, "Id", "TenLoaiSanPham");

    return View("ThemMoiSanPham", ViewData["lsp"]);

    }

    public ActionResult Create(string TenSanPham, float DonGia, int SoLuong,

    int loaiSanPham)

    {

    SanPham sp = new SanPham();

    sp.TenSanPham = TenSanPham;

    sp.DonGia = DonGia;

    sp.SoLuong = SoLuong;

    sp.LoaiSanPham = loaiSanPham;

    data.ThemMoiSanPham(sp);

    data.SubmitChanges();

    return RedirectToAction("DanhMucLoaiSanPham");

    }

    }

    }

    Tạo Views cho phép thêm mới sản phẩm.

    Views\SanPham\ThemMoiSanPham.aspx

    Tên sản phẩm:

    Đơn giá:

    Số lượng:

    Loại sản phẩm:

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 5

     

    Thưc̣ thi se ̃cho ra kết quả như sau (figure 2)

    Figure 2. Thưc̣ hiêṇ thêm mới sản phẩm trong MVC

    2 Sử a đổ i dữ liệ u trong MVC Thay đổi danh sách hiển thi ̣ sản phẩm cho phép câp̣ nhâṭ dữ liêụ

    Views\SanPham\DanhSachSanPham.aspx

    Đây la ̀danh saćh san̉ phâm̉ co ́trong chuyên muc̣

    ()

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 6

    Danh sách sản phẩm bây giờ có thêm môṭ actionlink “Edit” bên caṇh mỗi sản phẩm để người dùng

    tương tác với chức năng câp̣ nhâṭ dữ liêụ sản phẩm. (figure 3)

    Figure 3. Danh sách sản phẩm đã đươc̣ thay đổi.

    Thêm 2 phương thức CapNhatSanPham và Update trong lớp Controllers\SanPhamController.cs

    Controllers\SanPhamController.cs

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    using System.Web.Mvc.Ajax;

    using BanHang.Models;

    namespace BanHang.Controllers

    {

    public class SanPhamController : Controller

    {

    DataClassesDataContext data = new DataClassesDataContext();

    public ActionResult Index()

    {

    // Add action logic here

    ViewData["Title"] = "Sản phâm̉";

    return RedirectToAction("DanhMucLoaiSanPham");

    }

    public ActionResult DanhMucLoaiSanPham()

    {

    // Code cua ban o day

    ViewData["Title"] = "Danh muc̣ loaị san̉ phâm̉";

    List lsp = data.LoaiSanPhams.ToList();

    return View("DanhMucLoaiSanPham", lsp);

    }

  • Microsoft Vietnam – DPE Team |Bài số 5: Chỉnh sửa dữ liệu với MVC 7

    public ActionResult DanhSachSanPham(int id)

    {

    ViewData["Title"] = "Danh saćh san̉ phâm̉ trong loaị san̉ phâm̉";

    List sp = data.LaySanPhamTuLoaiSanPham(id);

    return View("DanhSachSanPham", sp);

    //DuLieuDanhSachSanPham sp = new DuLieuDanhSachSanPham();

    //ViewData.TenLoaiSanPham = loaisanpham;

    //ViewData.SanPham = data.LaySanPhamTuLoaiSanPham(loaisanpham);

    //return View("DanhSachSanPham", ViewData);

    }

    public ActionResult ChiTietSanPham(int id)

    {

    ViewData["Title"] = "Chi tiết sản phẩm";

    SanPham ctsp = data.LaySanPhamTuID(id);

    return View("ChiTietSanPham", ctsp);

    }

    public ActionResult ThemMoiSanPham()

    {

    ViewData["Title"] = "Thêm mới sản phẩm";

    //List dulieu = data.LayCacLoaiSanPham();

    var loaiSanpham = from c in data.LoaiSanPhams select c;

    ViewData["lsp"] = new SelectList(loaiSanpham, "Id", "TenLoa