2016-03-03 71 views
-1

我是新來的asp.net mvc.I有一個複選框列表,我希望當複選框被選中時,會顯示一個新的選中複選框列表。 我的代碼Product.cs代碼:如何使用實體框架在asp.net中獲取選中的複選框

public class Product 
{ 
    public int ProductID { get; set; } 
    public string ProductName { get; set; } 
    public int Price { get; set; } 
    public bool Checked { get; set; } 
    public virtual ICollection<Purchase> Purchases { get; set; } 
} 

我的觀點:

<h2>Product Lists</h2> 
@using (Html.BeginForm()) 
{ 

    <table class="table"> 
     <tr> 
      <th> 
       Product ID 
      </th> 
      <th> 
       Product Name 
      </th> 
      <th> 
       Price 
      </th> 
      <th></th> 
     </tr> 
     @for (var i = 0; i < Model.Count(); i++) 
     { 
      <tr> 
       <td> 
        @Html.DisplayFor(x => x[i].ProductID) 
       </td> 
       <td> 
        @Html.DisplayFor(x => x[i].ProductName) 
       </td> 
       <td> 
        @Html.DisplayFor(x => x[i].Price) 
       </td> 
       <td> 
        @Html.CheckBoxFor(x => x[i].Checked, new { Style = "vertical-align:3px}" }) 
       </td> 
      </tr> 
     } 

    </table> 

    <input type="submit" value="Purchase" class="btn btn-default" /> 
} 

這是當複選框在新頁面中選中的複選框中顯示被選中我的控制器code.I希望。 我的ActionResult:

public ActionResult Index() 
    { 
     return View(db.Products.ToList()); 
    } 

    [HttpPost] 
    public ActionResult Index(List<Product> list) 
    { 
     return View(list); 
    } 
@using (Html.BeginForm()) 

{

<table class="table"> 
    <tr> 
     <th> 
      Product ID 
     </th> 
     <th> 
      Product Name 
     </th> 
     <th> 
      Price 
     </th> 
     <th></th> 
    </tr> 

    @for (var i = 0; i < Model.Count(); i++) 
    { 
     <tr> 
      <td> 
       @Html.DisplayFor(x => x[i].ProductID) 
      </td> 
      <td> 
       @Html.DisplayFor(x => x[i].ProductName) 
      </td> 
      <td> 
       @Html.DisplayFor(x => x[i].Price) 
      </td> 
      <td> 
       @Html.CheckBoxFor(x => x[i].Checked, new { Style = "vertical-align:3px}" }) 
      </td> 
     </tr> 
    } 

</table> 
+0

參見[這個答案](http://stackoverflow.com/questions/29542107/pass-list-of-checkboxes-into-view-and -pull出-ienumerable/29554416#29554416) –

+0

請幫助我更多..我無法解決我的問題 – balouchi

+0

有什麼問題嗎?什麼不起作用?你得到什麼錯誤? –

回答

1

如果您已經擁有了所有選中/取消屬性的​​列表,只是想表明一個新視圖的檢查記錄,你可以存儲在你的列表一個TempData並重定向到將使用你的列表中選擇操作:

public ActionResult Index() 
{ 
    return View(db.Products.ToList()); 
} 

[HttpPost] 
public ActionResult Index(List<Product> list) 
{ 
    TempData["CheckedRecords"] = list.Where(x=>x.Checked).ToList(); //Don't forget to add 'using System.Linq;'! 
    return RedirectToAction("MyOtherView"); 
} 

public ActionResult MyOtherView() 
{ 
    var checkedRecords = (List<Product>)TempData["CheckedRecords"]; 
    return View(checkedRecords); 
} 
+0

如果用戶刷新瀏覽器,則全部失敗。將數據保存到數據庫! –

相關問題