gpt4 book ai didi

c# - 查看期待 IEnumerable

转载 作者:行者123 更新时间:2023-11-30 21:50:36 26 4
gpt4 key购买 nike

嗯,我在 Asp.net Mvc 中有点新,我是从头开始独自学习的,我有一个控制支出和收入的应用程序,我现在想做的是,根据收入和支出列表给我平衡来自用户,我在尝试控制它时遇到了很多问题,我不知道我是否以正确的方式做这件事

这是我的模型:

public class Balance
{
public int BalanceId { get; set; }
public List<Expense> Despesas { get; set; }
public List<Earning> Rendimentos { get; set; }
public string ApplicationUserId { get; set; }
}

所以我所做的是,首先尝试控制用户何时插入 Earning 或类似的行,在控制方法中验证用户是否已经存在于数据库中,如果不存在,则在费用和 yield 中创建他添加了 aplicationUserId 和昂贵的或收入。

我希望余额显示在每个页面中,所以我将其添加到我的 Layout.cshtml

<li>@Html.Action("GetBalance", "Home")</li>

它调用 Controller GetBalance:

public PartialViewResult GetBalance()
{
var userId = User.Identity.GetUserId();
var balance = db.Balance.Where(d => d.ApplicationUserId == userId);
return PartialView("_GetBalance",balance);
}

发送到 View _GetBalance 余额模型:

@model <MSDiary.Models.Balance>

<p>Saldo: @GetBalance()</p>

@functions
{
HtmlString GetBalance()
{
decimal saldo = 0;

if (Model.Expense.Count != 0 || Model.Earning.Count != 0)
{
foreach (var item in Model.Despesas)
{
balance += item.EarningValue;
}
foreach (var item in Model.Rendimentos)
{
balance -= item.ExpenseValor;
}
}

return new HtmlString(balance.ToString());
}
}

我想知道的是,如果有更简单的方法来做到这一点,或者我可以做些什么来做我想做的事,我不明白为什么我的观点期望不同的东西有人可以解释我做错了什么?

Ps: 很抱歉发了这么长的帖子和英语,但我想了解更多:)

最佳答案

首先是模型@model <MSDiary.Models.Balance>需要更改为:

@model IEnumerable<MSDiary.Models.Balance>

此外,方法 GetBalance理想情况下应该放在不在 GetBalance 中的类中局部 View 。您可以通过两种方式实现这一点,一种是通过扩展方法,另一种是拥有一个将计算出的余额作为属性的余额 View 模型,然后将其传递给您的 View 。

例如通过扩展方法:

public static class BalanceExtensions
{
public static string GetBalance(this Balance balance)
{
string displayBalance = "0:00";

// Your logic here
return displayBalance;
}
}

然后在您的分部 View 中,您可以使用新的 HTML Helper:

@Html.GetBalance();

作为附加说明,我会更改 ListIEnumerable对于支出和收入,您似乎只是在公开数据,而不是在操纵数据。

您的模型将如下所示:

public class Balance
{
public int BalanceId { get; set; }
public IEnumerable<Expense> Despesas { get; set; }
public IEnumerable<Earning> Rendimentos { get; set; }
public string ApplicationUserId { get; set; }
}

关于c# - 查看期待 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36222974/

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