我正在做一个我有这样的模型的应用程序
public class Saldo
{
public Saldo()
{
Expenses = new List<Expese>();
Incomes = new List<Income>();
}
public int SaldoId { get; set; }
public List<Expense> Despesas { get; set; }
public List<Income> Rendimentos { get; set; }
public string ApplicationUserId { get; set; }
}
我想要做的是在列表中添加一个费用,但它不起作用,当我在控制台上输出计数时它总是为null 在控制器中我这样做:
public ActionResult Create([Bind(Include = "ExpenseId,TipoDespesaId,DespesaDescricao,DespesaValor,TipoPagamentoId,Data,Comentario")] Expense expense)
{
var userId = User.Identity.GetUserId();
if (ModelState.IsValid)
{
var balance = db.Balance.Where(d => d.ApplicationUserId == userId).FirstOrDefault();
expense.ApplicationUserId = userId;
if (balance == null)
{
Balance s = new Balance();
s.Expense.Add(expense);
s.ApplicationUserId = userId;
db.Balance.Add(s);
}
else
{
Balance.Expense.Add(expense);
}
db.Expense.Add(expense);
db.SaveChanges();
return RedirectToAction("Index");
}
费用来自表单并传递给Action
我创建了一个新的Balance实例,它添加了ApplicationUserId,但是列表上的费用没有用,有人可以解释一下为什么会这样吗?
Ps:抱歉我的英文不好
答案 0 :(得分:1)
也许它只是在翻译中丢失了,但你的模型没有意义。你有一个名为&#34; Despesas&#34;的费用清单。但是在构造函数中,你称之为&#34; Expenses&#34;无论调用哪个列表,您都需要添加费用对象。而不是
s.Expense.Add(expense);
它将是
s.Despesas.Add(expense);