Asp.net 整数输出,而不是字符串

Asp.net 整数输出,而不是字符串,asp.net,asp.net-mvc,asp.net-mvc-3,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。我怎样才能改

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

@myrepository.OverDraftCount() +
@myrepository.MortgageCount() +
@myrepository.InstallmentCount()+
@myrepository.RevolvingCount()+
@myrepository.OthersCount()
但是它返回的是2+2+2+2+2,而不是它认为所有这些函数的输出都是字符串的10。我怎样才能改变它


感谢Razor视图引擎将所有内容都视为一个字符串(HTML呈现意味着输出一组字符串),因此您需要在代码块中执行求和并显示它

尝试:

然后可以在html中使用sum变量:

<span>@sum</span>
@sum

编辑以澄清所有剧变: 正如我在评论中广泛指出的那样,这将解决你的问题,但这并不是实现你想要的最整洁的方式。在我看来,您有两个更好的选择:

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

  • Razor视图引擎将所有内容都视为字符串(HTML呈现意味着输出一组字符串),因此您需要在代码块中执行求和并显示它

    尝试:

    然后可以在html中使用sum变量:

    <span>@sum</span>
    
    @sum
    

    编辑以澄清所有剧变: 正如我在评论中广泛指出的那样,这将解决你的问题,但这并不是实现你想要的最整洁的方式。在我看来,您有两个更好的选择:

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

  • 您刚刚忘记将
    Sum
    方法添加到此类:

    public decimal Sum()
    {
        return OverDraftCount() + 
               MortgageCount() + 
               InstallmentCount() + 
               RevolvingCount() + 
               OthersCount();
    }
    
    因此,在你看来:

    @myrepository.Sum()
    

    视图应该尽可能地愚蠢。他们太笨了,连数字都不会加。不要将这种逻辑编码到它们中。他们应该只显示传递给他们的信息,而不是试图计算和获取数据。这不是他们的责任。

    您只是忘了在这个类中添加一个
    Sum
    方法:

    public decimal Sum()
    {
        return OverDraftCount() + 
               MortgageCount() + 
               InstallmentCount() + 
               RevolvingCount() + 
               OthersCount();
    }
    
    因此,在你看来:

    @myrepository.Sum()
    

    视图应该尽可能地愚蠢。他们太笨了,连数字都不会加。不要将这种逻辑编码到它们中。他们应该只显示传递给他们的信息,而不是试图计算和获取数据。这不是他们的责任。

    @DotnetSparrow-我很高兴你将我的答案标记为正确的答案,但在看到@Darin Dimitrov的答案后,我不得不说他的方法可能更干净。您也可以中途退出,在控制器中执行添加操作,并通过
    ViewBag
    属性将结果传递给视图;比如:
    ViewBag.Sum=//操作
    和视图中的
    @ViewBag.Sum
    。我认为在视图上进行一些计算不是一个好主意。这不是view的工作。这主要是控制器的工作。您应该在控制器上执行此操作,并将其与ViewBag或某些强类型类一起传递。亲爱的downvoter,我尊重downvote,但你能至少解释一下为什么吗?我的回答没有错;我如实回答OP的要求。我还发表了两条评论,鼓励OP支持Darin的答案。那么为什么要投反对票呢?@Sergi这里没有冒犯的意思,但我是反对票的人:)我解释了为什么这不是正确的方式。@tugberk-很公平。我仍然认为我的答案没有错,这不是我想要的方式(我自己也从来没有这样做过),但它的答案是直截了当的OP问题。我是第一个说我不配在这件事上得到正确答案的人,但我也不认为我应该得到否决票。不管怎样,这是你的意见,我尊重你的意见。我很高兴你至少给出了否决票的理由:)@DotnetSparrow-我很高兴你将我的答案标记为正确答案,但在看到@Darin Dimitrov的答案后,我不得不说他的方法可能更干净。您也可以中途退出,在控制器中执行添加操作,并通过
    ViewBag
    属性将结果传递给视图;比如:
    ViewBag.Sum=//操作
    和视图中的
    @ViewBag.Sum
    。我认为在视图上进行一些计算不是一个好主意。这不是view的工作。这主要是控制器的工作。您应该在控制器上执行此操作,并将其与ViewBag或某些强类型类一起传递。亲爱的downvoter,我尊重downvote,但你能至少解释一下为什么吗?我的回答没有错;我如实回答OP的要求。我还发表了两条评论,鼓励OP支持Darin的答案。那么为什么要投反对票呢?@Sergi这里没有冒犯的意思,但我是反对票的人:)我解释了为什么这不是正确的方式。@tugberk-很公平。我仍然认为我的答案没有错,这不是我想要的方式(我自己也从来没有这样做过),但它的答案是直截了当的OP问题。我是第一个说我不配在这件事上得到正确答案的人,但我也不认为我应该得到否决票。不管怎样,这是你的意见,我尊重你的意见。我很高兴你至少给出了否决票的理由:)我很高兴你把我的答案标记为正确的答案,但在看到@Darin Dimitrov的答案后,我不得不说他的方法可能更干净。您也可以中途退出,在控制器中执行添加操作,并通过
    ViewBag
    属性将结果传递给视图;比如:
    ViewBag.Sum=//操作
    在视图
    @ViewBag.Sum
    中,我很高兴您将我的答案标记为正确答案,但在看到@Darin Dimitrov的答案后,我不得不说他的方法可能更干净。您也可以中途退出,在控制器中执行添加操作,并通过
    ViewBag
    属性将结果传递给视图;类似:
    ViewBag.Sum=/