我创建了一些返回整数的静态函数。在我看来,我想要这些功能的总和。我使用以下代码:
@myrepository.OverDraftCount() +
@myrepository.MortgageCount() +
@myrepository.InstallmentCount()+
@myrepository.RevolvingCount()+
@myrepository.OthersCount()
但它返回2 + 2 + 2 + 2 + 2而不是10,它认为所有这些函数的输出都是字符串。我怎样才能改变它?
由于
答案 0 :(得分:6)
您忘记在此课程中添加Sum
方法:
public decimal Sum()
{
return OverDraftCount() +
MortgageCount() +
InstallmentCount() +
RevolvingCount() +
OthersCount();
}
以便在您的观点中:
@myrepository.Sum()
观点应尽可能愚蠢。他们是如此愚蠢,甚至无法添加数字。不要将这样的逻辑编码到它们中。它们应该只显示传递给它们的信息,而不是尝试计算和获取数据。这不是他们的责任。
答案 1 :(得分:-1)
Razor视图引擎会将所有内容视为字符串(HTML呈现意味着输出一串字符串),因此您需要在代码块中执行求和并显示它。
尝试:
@{
var sum = myrepository.OverDraftCount() +
myrepository.MortgageCount() +
myrepository.InstallmentCount()+
myrepository.RevolvingCount()+
myrepository.OthersCount();
}
然后你可以在html中使用sum变量:
<span>@sum</span>
正如我在评论中广泛陈述的,这将解决您的问题,但这并不是实现您想要的最佳方式。在我看来,你有 2个更好的选择:
ViewBag
传递给视图。