gpt4 book ai didi

asp.net-mvc - MVC ViewData 是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 15:48:07 26 4
gpt4 key购买 nike

我正在尝试 MVC 应用程序只是为了学习技术。我正在模拟一个支票登记应用程序,该应用程序跟踪支票帐户,哪些已清算银行,哪些尚未清算。我在我的模型中使用 EF,并且在编辑、创建等方面似乎一切正常。但是,我在顶部有几个总计。一张显示银行余额,另一张显示实际余额。它在大多数情况下都有效,但是当我进行编辑时,它并不总是准确地反射(reflect)新的总数,我需要它在每次进行更改时更新(即当某些东西清除银行时):

[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();
}

我在索引 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>

最佳答案

您缺少 MVC 的一部分...M。

您应该填充一个包含 View 所需的所有数据项的模型。这就是您的 Controller 应该的样子。

[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);
}

然后您的 View 将如下所示(注意,模型中的所有内容都是强类型的):

<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>

您需要创建一个模型,它只是一个具有您想要的所有属性的类。

关于asp.net-mvc - MVC ViewData 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com