我正在玩一个MVC应用程序,只是为了学习这项技术。我正在嘲笑一个支票登记应用程序,它跟踪一个支票账户,什么清算银行和什么没有。我使用EF作为我的模型,在编辑,创建等方面,一切似乎都正常工作。但是,我在顶部有几个总计。一个显示银行的余额,另一个显示实际余额。它大部分时间都可以工作,但是当我编辑时,它并不总是准确地反映出新的总数,而且每次进行更改时我都需要更新(即当某些东西清除了银行时):
[Authorize(Roles = "admin, checkUser")]
public ActionResult Index()
{
var resultSet = from myChecking in chk.tblCheckings
orderby myChecking.id descending
select myChecking;
ViewData.Model = resultSet.Take(45).ToList();
//for balances
var actualBalance = from theChecking in chk.tblCheckings
select theChecking.deposit - theChecking.withdrawal;
var bankBalance = from theChecking in chk.tblCheckings
where theChecking.cleared == true
select theChecking.deposit - theChecking.withdrawal;
//get bank balance
ViewData["bankBalance"] = bankBalance.Sum();
//get actual balance
ViewData["actualBalance"] = actualBalance.Sum();
return View();
}
我在索引视图中显示实际和其他余额,如下所示:
<td colspan="9" style="text-align: center; font-size: 11pt; color: white;">
<%= string.Format("Bank Balance: {0:c}", ViewData["bankBalance"]) %> ------
<%= string.Format("Actual Balance: {0:c}", ViewData["actualBalance"]) %>
</td>
答案 0 :(得分:7)
你错过了MVC的一部分...... M。
您应该填充包含视图所需的所有数据项的模型。这就是你的控制器应该是什么样子。
[Authorize(Roles = "admin, checkUser")]
public ActionResult Index()
{
IndexModel model = new IndexModel();
var resultSet = from myChecking in chk.tblCheckings
orderby myChecking.id descending
select myChecking;
model.Transactions = resultSet.Take(45).ToList();
//for balances
var bankBalance = from theChecking in chk.tblCheckings
where theChecking.cleared == true
select theChecking.deposit - theChecking.withdrawal;
model.BankBalance = bankBalance.Sum();
//get actual balance
var actualBalance = from theChecking in chk.tblCheckings
select theChecking.deposit - theChecking.withdrawal;
model.ActualBalance = actualBalance.Sum();
return View(model);
}
然后您的视图将如下所示(注意,模型中的所有内容都是强类型的):
<td colspan="9" style="text-align: center; font-size: 11pt; color: white;">
<%= string.Format("Bank Balance: {0:c}", Model.BankBalance) %> ------
<%= string.Format("Actual Balance: {0:c}", Model.ActualBalance) %>
</td>
您需要创建一个模型,它只是一个包含您想要的所有属性的类。