[asp.net-mvc]在 JavaScript 中用剃须刀撇号问题

发布时间: 2016/10/9 6:17:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

它是简单 !

这是我的动态 JavaScript 代码与 Razor 标记︰

<script type="text/javascript">
  $.fancybox.open(
    [
        @foreach (var class in GenericClass)
        {
            var aux = "{ href: 'http://localhost:63095" + Url.RouteUrl("Image") + "' }";
            <Text>@aux</text>
            break;
        }
    ],
    { helpers: { thumbs: { width: 75, height: 50 } }
  });    
</script>

这是我所想的任何 web 浏览器︰

<script type="text/javascript">
  $.fancybox.open(
    [
        { href: &#39;http://localhost:63095/Home/Image&#39; }
    ],
    { helpers: { thumbs: { width: 75, height: 50 } }
  });    
</script>

但这是我真正想要生成︰

<script type="text/javascript">
  $.fancybox.open(
    [
        { href: 'http://localhost:63095/Home/Image' }
    ],
    { helpers: { thumbs: { width: 75, height: 50 } }
  });    
</script>

问题是明确︰ 而不是 apostrophe (') 的输出具有 &#39; 。有没有人知道如何我可以生成 ' 而不是 &#39; 吗?

观察︰ 已经试着做转义和编码,但似乎都不上班。

解决方法 1:

也许试试相反包括内联值︰

@foreach (var class in GenericClass)
{
  <Text>{ href: 'http://localhost:63095@(Url.RouteUrl("Image"))' }</text>
  break;
}

我相信,应该解决的问题


原始的 Html 方法

如果你确实需要原始的 html,您可以使用以下内容︰

@Html.Raw(myString)

只是要与这非常小心,尤其是如果你包括值由用户输入,因为它可能导致 XSS 或其他安全问题。

赞助商