使用 Single Qoute 将字符串从 MVC Razor 传递到 JavaScript

发布于 2024-11-02 22:15:12 字数 326 浏览 4 评论 0原文

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

将其添加到单个脚本块中:

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

导致以下警报:

在此处输入图像描述

This seems so simple it's embarrassing. However, the first question is when passing a value from the new ViewBag in MVC 3.0 (Razor) into a JavaScript block, is this the correct way to do it? And more importantly, where and how do you apply the proper string replacement code to prevent a single quote from becoming ' as in the resultant alert below?

Adding this into a single script block:

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

Results in the following alert:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

再可℃爱ぅ一点好了 2024-11-09 22:15:12

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

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

但是,现在您的字符串中间有一个实际的 ' ,这会导致JavaScript 错误。要解决此问题,您可以将警报字符串括在双引号(而不是单引号)中,或者转义 ' 字符。所以,在你的控制器中你会有

ViewBag.str = "Hi, how\\'s it going?";

Razor will HTML encode everything, so to prevent the ' from being encoded to ', you can use

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

However, now you've got an actual ' in the middle of your string which causes a javascript error. To get around this, you can either wrap the alert string in double quotes (instead of single quotes), or escape the ' character. So, in your controller you would have

ViewBag.str = "Hi, how\\'s it going?";
你对谁都笑 2024-11-09 22:15:12

使用 JSON 字符串的另一种解决方案:

C#

ViewBag.str = "[{\"Text\":\"Hi, how's it going?\"}]";

Javascript

var j = @Html.Raw(ViewBag.str);
alert (j[0].Text); 

Another solution to use JSON string:

C#

ViewBag.str = "[{\"Text\":\"Hi, how's it going?\"}]";

Javascript

var j = @Html.Raw(ViewBag.str);
alert (j[0].Text); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文