整数输出而不是字符串

时间:2011-04-02 17:42:39

标签: asp.net asp.net-mvc asp.net-mvc-3

我创建了一些返回整数的静态函数。在我看来,我想要这些功能的总和。我使用以下代码:

@myrepository.OverDraftCount() +
@myrepository.MortgageCount() +
@myrepository.InstallmentCount()+
@myrepository.RevolvingCount()+
@myrepository.OthersCount()

但它返回2 + 2 + 2 + 2 + 2而不是10,它认为所有这些函数的输出都是字符串。我怎样才能改变它?

由于

2 个答案:

答案 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个更好的选择

  1. 要么采用@Darin Dimitrov的答案或
  2. 在控制器中执行计算,并将总和值作为视图模型的一部分或通过ViewBag传递给视图。