2017-01-09 27 views
0

我試圖從視圖中獲取一個CheckBox值,但是,即使我選中複選框,它仍然會返回我「false」。在asp.net中獲取CheckBox的價值mvc 5

我在做什麼錯了?

 [HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Create([Bind(Include = "Id,ReaderId,BookId")] BookingViewModel bookingViewModel) 
     { 
      Booking booking = new Booking(); 
      if (ModelState.IsValid) 
      { 
       var userId = User.Identity.GetUserId(); 
       int readerId = db.Readers.Where(c => c.ApplicationUserId == userId).First().ReaderId; 




       booking.ReaderId = readerId; 
       booking.BookId = bookingViewModel.BookId; 


       db.Bookings.Add(booking); 

       bool value = bookingViewModel.IfWantEmail; 
       db.SaveChanges(); 

       return RedirectToAction("ShowUserBookings"); 
      } 

      ViewBag.BookId = new SelectList(db.Books, "BookId", "Title", booking.BookId); 

      return View(booking); 
     } 

這是從我的觀點代碼:

  <dt> 
       @Html.DisplayNameFor(model => model.IfWantEmail) 
      </dt> 

      <dd> 
       @Html.CheckBoxFor(model => model.IfWantEmail) 
      </dd>   
+0

你可以刪除'[Bind(Include =「Id,ReaderId,BookId」)]',看看它的工作? – Win

回答

2

你故意從POST數據綁定到模型不包括IfWantEmail

[Bind(Include = "Id,ReaderId,BookId")] 
+0

非常感謝((: – Kasparas