Làm chức năng đếm lượt xem như thế nào?

E đang làm chức năng đếm lượt xem của bài viết web MVC.Khi nhấn vào button sẽ cộng vào 1 lượt xem vào database.Mọi người có thể hướng dẫn em cách làm được ko ạ.

Mỗi khi hàm GET tại controller được gọi thì update database +1 view (làm một service đếm view)

[HttpPost]       
       public void showview( Sach sach,string bul)
       {
           int? num = null;           
               if (bul!="Doc")
           {
               num=0;
                              
           }
           sach.ViewNum = Convert.ToInt32(num)+1;            
           db.SaveChanges();
       }

Đếm view thì phải viết ở controller GET chứ bạn, lấy số view cũ ra rồi cộng thêm 1 rồi save lại. Mà cách này làm bài tập, đồ án thì OK chứ thực tế không ai làm kiểu này. Nếu lượng request cao, nhiều user thì không ổn.

 [HttpGet]       
        public void showview( Sach sach,string bul)
        {
            int? num = null;           
                if (bul!="Doc")
            {
                num=0;
                               
            }
            sach.ViewNum = Convert.ToInt32(num)+1;            
            db.SaveChanges();
        }

mà vẫn ko được í

Cậu kỳ vọng gì ở code trên thế @6554_Le_Hong_Phong? :smile:

Bạn @HongNhung có nói:

lấy số view cũ ra rồi cộng thêm 1 rồi save lại

Cậu đã lấy view trước từ Database ra đâu? :smile:

5 Likes

la nhu the nao the anh

   private void showview( string bul,int MaSach)
        {
            var s = db.Saches.Where(n => n.MaSach == MaSach).FirstOrDefault();

            int? num = null;
            if (bul == "Doc")
            {
                num = 0;
            }       
            s.ViewNum = Convert.ToInt32(num) + 1;            
            db.SaveChanges();
        }

Sorry, tớ tò mò chút, background của cậu có phải IT không thế? @@


Giờ, tớ muốn cậu quên đi những gì cậu đã code, trả lời tớ những câu hỏi này nhé:

  1. Lượt xem của cậu được lưu ở đâu?
  2. Làm thế nào để lấy lượt xem hiện tại của bài viết hiện tại?
  3. Làm thế nào để tăng số lượt xem lên 1 đơn vị?

Trả lời tớ trước các câu hỏi này theo logic của cậu nhé! :slight_smile:

3 Likes

ViewNum lưu ở database
Lấy mã sách rồi show view
click vào button rồi viewnum cộng 1

Uhm, cậu hiểu logic rồi đó.

Quay lại code của cậu, thế, cậu đã:

  • Lấy được số view của bài báo chưa?
  • Tăng view num ở database lên +1 ở code của cậu chưa?
  • Lưu vào database record mới chưa?
3 Likes

view đã lưu ở database nhưng mỗi lần click lại ko cộng thêm được nữa

hehe bây giờ được rồi
cảm ơn nhá

1 Like

Chúc mừng cậu nhé! :smile:

2 Likes

chỉ giúp tui phần comment bài viết với

Sorry, comment nào cơ cậu?
Nếu nó không liên quan tới câu hỏi hiện tại, cậu có thể cân nhắc mở topic mới, mô tả rõ vấn đề của cậu cùng với code mà cậu đang làm việc cùng. Khi đó, bọn tớ mới giúp được.

Với cả, cậu thử mày mò chút trước khi hỏi xem, tớ thấy cậu hơi vội vàng quá đấy :smile:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?