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

如何获取ViewBag的纯净值?控制器赋值后视图显示异常

解决ViewBag显示对象描述而非目标数值的问题

你碰到的这个情况,核心原因应该是你给ViewBag赋值的是一个包含incremento属性的匿名对象,而非直接的数值5。比如控制器里可能写了类似这样的代码:

// 错误示例:赋值了匿名对象
ViewBag.Incremento = new { incremento = 5 };

这种情况下,视图里直接输出ViewBag.Incremento时,ASP.NET MVC会默认调用对象的ToString()方法,就会显示出{ incremento = 5 }这个对象的字符串表示,而不是你想要的数值。

你可以通过两种方式解决:

方法1:在视图中访问对象的属性

如果控制器的代码暂时不能修改,那在视图里直接读取对象的incremento属性即可:

<!-- 文本框显示数值5 -->
@Html.TextBox("Incremento", ViewBag.Incremento.incremento)

<!-- 直接输出数值的话 -->
@ViewBag.Incremento.incremento

方法2:修改控制器,直接赋值数值

这是更简洁的方式,直接把目标数值赋值给ViewBag的对应键,而不是包装成对象:

// 正确示例:直接赋值数值
ViewBag.Incremento = 5;

这样在视图里不管是用@Html.TextBox("Incremento", ViewBag.Incremento)还是直接输出@ViewBag.Incremento,都会显示纯净的数值5了。

内容的提问来源于stack exchange,提问作者Sergio Di Fiore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:58:21