3

我正在尝试将一些 javascript 与服务器端变量结合起来。

在这里,我试图用实际的小于号替换“<”号:

@{
  string age = '&lt;1'; // assume I got it from the QueryString 
  <text>$('#select1').val('@age'.replace('&lt;','<'));</text> // and when the parser sees the '<' symbol it thinks I'm trying to close the <text> tage
}

有什么方法可以转义/忽略该符号?

4

3 回答 3

3

我最终使用了@(Html.Raw("<"))

于 2015-10-08T19:43:04.973 回答
1

尝试这个:

请注意,它必须在脚本标签之间才能工作..(我假设是这种情况)

<script>
@{
  string age = '&lt;1'; // assume I got it from the QueryString 
  @: $('#select1').val('@age'.replace('&lt;','<')); // and when the parser sees the '<' symbol it thinks I'm trying to close the <text> tage
}
</script>

更新

顺便说一句,您上面使用的文本语法也可以使用(而不是@:) .. 特别是在您的示例中导致问题的原因不是 javascript 中的 <,而是第二个

<text>

在评论中

于 2013-05-22T04:54:34.050 回答
0
    @{
      string age = '&lt;1'; // assume I got it from the QueryString 
      <text>var LESS_THAN_CHARCODE = 60;</text> // equivalent for the special character '<' (less than symbol)
      <text>$('#select1').val("@age".replace('&lt;',String.fromCharCode(LESS_THAN_CHARCODE)))</text>
    }

出于某种原因,对我来说既不工作unescape也不decodeURIComponent工作,但String.fromCharCode工作得很好,考虑到“<”将是唯一需要替换的字符。

谢谢你的帮助!

于 2013-05-22T04:57:21.777 回答