Tải bản đầy đủ (.pdf) (3 trang)

MVC4Seminar lab7

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 3 trang )


ThS. CNTT: Nguyễn Nghiệm – Trang 1

BÀI 7: TÌM KIẾM HÀNG HÓA
MỤC TIÊU
 Biết cách xây dựng trang Action tiếp nhận và phân biệt tham số vào để xây dựng kết quả tìm
kiếm phù hợp với điều kiện mong muốn.
MÔ TẢ
Trong bài này bạn phải hiệu chỉnh mã nguồn của Action Search trong ProductController để có thể tiếp
nhận các yêu cầu từ:
 Nhấp 1 loại: xem hàng theo chủng loại
 Nhấp 1 nhà cung cấp: xem hàng theo nhà cung cấp
 Nhấp chuỗi tìm kiếm: xem hàng có tên chứa chuỗi tìm kiếm
Tìm theo tên
Tìm theo loại
Tìm theo nhà cung cấp




Sau đây là trang hàng hóa khi nhấp liên kết chủng loại Cameras

ThS. CNTT: Nguyễn Nghiệm – Trang 2


THỰC HIỆN
 Bước 1: Hoàn thiện _Search.cshtml
 Bước 2: Nâng cấp mã Action Search của ProductController
Bước 1: Hoàn thiện _Search.cshtml
Mở _Search.cshtml trong Views/Shared và hoàn thiện mã nguồn như sau để khi submit form sẽ gọi
action Search() của ProductController và truyền theo tham số Search.


<div class="art-vmenublock clearfix">
<div class="art-vmenublockheader">
<h3 class="t">Search</h3>
</div>
<div class="art-vmenublockcontent nn-search">
<form action="/Product/Search">
@Html.TextBox("Search")
</form>
</div>
</div>

ThS. CNTT: Nguyễn Nghiệm – Trang 3

Bạn cũng đã hoàn thiện Layout với _Category.cshtml và _Supplier.cshtml cũng gọi về action Search() của
ProductController với các mẫu liên kết:
 <a href="/Product/Search?CategoryId=@c.Id">@c.Name</a>
 <a href="/Product/Search?SupplierId=@s.Id">@s.Name</a>
Bước 2: Nâng cấp mã Action Search của ProductController
Để tạo ra kết quả tìm kiếm khác nhau dựa vào tham số yêu cầu (Search, CategoryId và SupplierId), bạn
cần hiệu chỉnh mã của action Search() như sau:
public ActionResult Search()
{
if (Request["CategoryId"] != null) // tìm theo loại
{
int CategoryId = int.Parse(Request["CategoryId"]);
Session["products"] = db.Products
.Where(p => p.CategoryId == CategoryId).ToList();
}
else if (Request["SupplierId"] != null) // tìm theo nhà cung cấp
{

String SupplierId = Request["SupplierId"];
Session["products"] = db.Products
.Where(p => p.SupplierId == SupplierId).ToList();
}
else if (Request["Search"] != null) // tìm theo tên
{
String Search = Request["Search"];
Session["products"] = db.Products
.Where(p => p.Name.Contains(Search)).ToList();
}
else if(Session["products"] == null)
{
Session["products"] = db.Products.ToList();
}
var products = Session["products"] as List<Product>;
var pager = Pager.Set("pager1", 6, 5, products.Count);
return View(products.Skip(pager.StartRow).Take(pager.PageSize));
}
Mã của action cũng duy trì kết quả tìm kiếm trong Session để khi chuyển trang không bị mất điều kiện
tìm kiếm.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×