javascript - 将带有单引号的字符串从 MVC Razor 传递到 JavaScript

标签 javascript asp.net-mvc razor viewbag

这看起来很简单,令人尴尬。然而,第一个问题是当将值从 MVC 3.0 (Razor) 中的新 ViewBag 传递到 JavaScript block 时,这是正确的方法吗?更重要的是,您在哪里以及如何应用正确的字符串替换代码来防止单引号变成 ',如下面的结果警报中所示?

将此添加到单个脚本 block 中:

alert('@ViewBag.str')   // "Hi, how's it going?"

导致以下警报:

enter image description here

最佳答案

Razor 将对所有内容进行 HTML 编码,以防止 ' 被编码为 ' , 您可以使用

alert('@Html.Raw(ViewBag.str)');

但是,现在您的字符串中间有一个实际的 ' ,这会导致 javascript 错误。为了解决这个问题,您可以将警报字符串用双引号(而不是单引号)括起来,或者转义 ' 字符。因此,在您的 Controller 中,您将拥有
ViewBag.str = "Hi, how\\'s it going?";

关于javascript - 将带有单引号的字符串从 MVC Razor 传递到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749590/

相关文章:

javascript - 如何从 Style DOM 对象获取源文件行号?

javascript - 插入缺失的字母 javascript 游戏

c# - jquery mouseover() 检查拖放中的文件?

asp.net mvc3 禁用母版页查看

javascript - 我正在尝试使用复选框删除一行数据,当我单击“删除”时,我的 php 应该删除该行

javascript - 如何在ajax成功结果中连接 anchor 标记

ASP.NET MVC 将模型与文件一起*传递回 Controller

asp.net-mvc - 如何设置持久身份验证 :true in IIS and what is the use of it?

c# - 模型中的 MVC5 Razor NullReferenceException

asp.net - Html.SelectFor razor 语法添加类