2016-12-14 67 views
-1

我想創建一個包含項目和複選框的表來選擇這些項目。我將這些複選框包含在列表中,但此列表始終返回null。非常感謝您的幫助。ASP.NET MVC CheckBox列表始終爲空

控制器:

public ActionResult Index() 
{ 
    var expenseTypesView = new ViewExpenseTypesAndSelection 
    { 
     ExpensesTypes = _context.ExpenseType.ToList(), 
    };  
    return View(expenseTypesView); 
} 

[HttpPost] 
public ActionResult SelectExpensesTypes(ViewExpenseTypesAndSelection SelectedExpenses) 
{ 
    var entry = new userSpecificExpenses(); 
    var i = 0; 
    foreach (var item in SelectedExpenses.SelectedExpenses) 
    { 
     if(item) 
     { 
      entry.expenseTypeId = i; 
      entry.UtilisateurId= User.Identity.GetUserId(); 
      _context.UserspecificExpenses.Add(entry); 
      _context.SaveChanges(); 
     } 
     i++; 
    } 
    return View(); 
} 

查看:

@model MBT.ViewModels.ViewExpenseTypesAndSelection 
.... 
@using (Html.BeginForm("SelectExpensesTypes", "ExpenseTypes")) 
{ 
    <table class="table table-bordered table-hover"> 
     <thead> 
      <tr> 
       <th class="text-center">Expense</th> 
       <th class="text-center">Include</th> 
      </tr> 
     </thead> 
     <tbody> 
      @{ 
       for (int i = 0; i < Model.ExpensesTypes.Count; i++) 
       { 
        <tr> 
         <td> 
          <div class="checkbox"> 
           @Model.ExpensesTypes[i].Type 
          </div> 
         </td> 
         <td> 
          <div class="checkbox"> 
           @Html.CheckBoxFor(m => m.SelectedExpenses[i]) 
          </div> 
         </td> 
        </tr> 
       } 
      } 
     </tbody> 
    </table> 
    <button type="submit" class="btn btn-primary">Submit</button> 
} 
+0

「ExpenseType」和「SelectedExpenses」的模型是什麼?使用'@ Html.CheckBoxFor(m => m.SelectedExpenses [i])'沒有任何意義。你的'ExpensesType'模型需要一個屬性(比如說)'bool IsSelected'和它的'@ Html.CheckBoxFor(m => m.ExpensesTypes [i] .IsSelected)',然後你至少還需要一個隱藏的輸入'ExpensesType' ID屬性 –

回答

0

您發送ViewExpenseTypesAndSelection幾乎只是ExpensesTypes空,然後張貼回到您的文章的方法。這意味着你發送null並接收null。 那麼,那有什麼問題?