Chào mọi người. Mình vừa tập lập trình web asp.net. Mình dùng mô hình MVC với Entity Framework 6 và theo hướng database first. Đại loại mình có 1 bảng sản phẩm như thế này
sanpham( sanpham_id int,
tensanpham string,
loaisanpham_id int)
và 1 bảng loại sản phẩm.
loaisanpham( loaisanpham_id int,
tenloai string)
Mình muốn làm chức năng hiển thị sản phẩm theo loại, mình có viết 1 hàm trong controller cho chức năng này. Nhưng mỗi khi chạy link vào controller thì nó toàn vào vòng if giá trị truyền vào là null.
public ActionResult danhmucloaisanpham(int? loaisanphamID)
{
if (loaisanphamID == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var items = db.sanphams.Where(s => s.loaisanpham_id == loaisanphamID);
if (items == null)
{
return HttpNotFound();
}
return View(items.ToList());
}
Trong view của trang này thì mình chỉ gọi đơn giản ra là tên của các sản phẩm đã kiếm bằng vòng foreach. Nhưng khi mình chạy đường dẫn link vào Action này thì toàn vào BadRequest. Sau 1 hồi mò thì mình đổi tên tham số thành id thì nó chạy được. Mọi người cho hỏi là vì sao ạ ?
Mình cũng có 1 câu hỏi khác là nếu mình muốn search theo nhiều cách khác nhau ( hãng sản phẩm, giá, … ) mà đều trả về trên cùng 1 trang thì mình phải viết nhiều cái ActionResult với các tham số khác nhau hay mình nên tạo 1 câu truy vấn bên View rồi gởi về bên Controller rồi mới chạy hay còn cách nào khác ạ ? Cảm ơn mọi người trước
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?