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

.NET中如何用ViewBag变量正确填充HTML Helper TextBox?

解决ViewBag预填充TextBox显示对象字符串的问题

这是因为你误用了Html.TextBox的重载方法!咱们一步步来修正:

错误原因分析

你当前的视图代码:

@Html.TextBox("toemail", new { @ViewBag.contactemail }, new { @class = "form-control" })

这里的核心问题是:Html.TextBox的第二个参数是用来指定输入框要显示的值,但你却传了一个匿名对象(new { @ViewBag.contactemail }本质是创建了一个带contactemail属性的对象),所以TextBox会把这个对象的ToString()结果(也就是{ contactemail = katie@gmail.co.uk})显示出来,而不是你想要的纯邮箱地址。

正确写法

直接把ViewBag.contactemail作为第二个参数传入即可:

@Html.TextBox("toemail", ViewBag.contactemail, new { @class = "form-control" })

这样输入框就会正确显示katie@gmail.co.uk了。

额外补充(可选)

如果你的项目有对应的模型类,也可以用强类型的TextBoxFor来避免这类参数混淆问题,比如假设模型有ToEmail属性:

@Html.TextBoxFor(m => m.ToEmail, new { @class = "form-control" })

这时候只要在后台把模型的ToEmail赋值为对应邮箱,就能自动预填充,代码可读性也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:00:38