You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对来自不同Model的ViewBag数值进行求和计算

解决ViewBag数值求和的问题

你之前的代码问题在于,只是把两个相同的ViewBag值和+符号直接输出成字符串了,并没有真正执行数值相加的计算。这里提供两种可行的解决方式:

方式一:在视图中直接计算并格式化

把三个ViewBag值转换为decimal后相加,再统一格式化为货币格式,代码如下:

<p>@(((decimal)ViewBag.InvHardwareTotalPrice + (decimal)ViewBag.InvSoftwareTotalPrice + (decimal)ViewBag.InvFurnitureTotalPrice).ToString("C2"))</p>

如果担心某个ViewBag值可能未赋值(为null),可以加上空值处理避免转换报错:

<p>@(((decimal)(ViewBag.InvHardwareTotalPrice ?? 0) + (decimal)(ViewBag.InvSoftwareTotalPrice ?? 0) + (decimal)(ViewBag.InvFurnitureTotalPrice ?? 0)).ToString("C2"))</p>

方式二:在控制器中预先计算总和(推荐)

视图尽量只负责展示,业务计算放在控制器中更合理。在控制器里先计算好总和,再通过ViewBag传递到视图:

控制器代码:

// 假设你已经有三个类别的总价计算逻辑
decimal hardwareTotal = 你的硬件总价计算逻辑;
decimal softwareTotal = 你的软件总价计算逻辑;
decimal furnitureTotal = 你的家具总价计算逻辑;

ViewBag.InvHardwareTotalPrice = hardwareTotal;
ViewBag.InvSoftwareTotalPrice = softwareTotal;
ViewBag.InvFurnitureTotalPrice = furnitureTotal;
// 计算总和并传递
ViewBag.InvTotalPrice = hardwareTotal + softwareTotal + furnitureTotal;

视图代码:

<p>@(((decimal)ViewBag.InvTotalPrice).ToString("C2"))</p>

内容的提问来源于stack exchange,提问作者Acadia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:21:01