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

ASP.NET MVC视图中HTML输入框如何显示带重音的字符?

解决ViewBag传递特殊字符在jQuery中显示为HTML实体的问题

这个问题我之前也碰到过,本质是ASP.NET MVC默认的HTML编码机制在搞鬼——为了防范XSS攻击,框架会自动对ViewBag输出的字符串进行编码,所以法语单词里的é被转成了HTML实体é,直接在jQuery里用@ViewBag.T就会拿到编码后的内容。

这里有两种简单的解决方法:

方法一:在jQuery中用Html.Raw()阻止编码

保持Controller代码不变:

ViewBag.T = "Espèce";

修改View中的jQuery代码,用Html.Raw()包裹ViewBag值,明确告诉框架不要对这个字符串进行编码:

$("#T").val("@Html.Raw(ViewBag.T)").focus();

HTML输入框代码保持原样即可:

<div>
  <input type="text" id="T" value="" />
</div>

方法二:直接在输入框value属性中绑定(更直观)

如果不需要动态赋值,也可以直接在HTML输入框的value属性里用Html.Raw()绑定ViewBag值,之后单独处理聚焦逻辑:

<div>
  <input type="text" id="T" value="@Html.Raw(ViewBag.T)" />
</div>

对应的jQuery代码可以简化为:

$("#T").focus();

两种方法都能让输入框正确显示Espèce而非编码后的实体内容,你可以根据自己的场景选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:33:00