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

如何在SweetAlert弹窗中正确使用@Html.Raw显示控制器传递的HTML内容

问题1:SweetAlert中展示格式化HTML内容

你当前用title字段传递HTML,但SweetAlert默认会转义HTML源码,需要改用html选项来渲染解析后的内容,同时要避免字符串引号破坏JS结构:

控制器代码保持不变:

ViewBag.message = "<h3> Something went terribly wrong, please try again or contact us at <a href='mailto:info@abc.we'>info@abc.we</a> </h3>";

修改视图代码:

<script type="text/javascript">
$(function () {
    swal({
        html: "@Html.Raw(HttpUtility.JavaScriptStringEncode(ViewBag.message))",
        icon: "success",
        button: "Ok",
    });
});
</script>
  • HttpUtility.JavaScriptStringEncode会处理HTML内容里的引号,避免破坏JS字符串格式
  • html选项是SweetAlert专门用来渲染HTML的参数,不会转义内容

如果使用的是SweetAlert2,写法完全一致,同样用html属性替代title/text。

问题2:ViewBag传递的JS代码无法执行

你的核心逻辑没问题,只需调整细节确保代码正确输出和执行:

控制器代码保持不变:

ViewBag.htmlmsg = "alert('asd');";

修改视图代码:

<script>
$(document).ready(function () {
    @Html.Raw(ViewBag.htmlmsg)
});
</script>
  • 不要在@Html.Raw后额外加分号,因为你的ViewBag内容已经自带分号
  • 若仍不执行,先确认jQuery已在该脚本之前引入(否则$(document).ready不会触发),也可以去掉DOM就绪事件测试:
<script>
@Html.Raw(ViewBag.htmlmsg)
</script>

如果这样能弹出提示,说明是jQuery加载顺序或DOM就绪时机的问题,调整jQuery引入位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:45:34