使用JavaScript'小于'符号(<)的ASP.NET Razor无法解析

时间:2013-05-22 04:33:32

标签: javascript asp.net razor

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

我在这里试图取代“<”标志与实际小于标志:

@{
  string age = '<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
}

是否可以转义/忽略该符号?

3 个答案:

答案 0 :(得分: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>

更新

很明显,你上面使用的文本语法也可以工作(而不是@ :) ..具体是什么导致你的例子中的问题不是&lt;在javascript中,而不是第二个

<text>
评论中的

答案 1 :(得分:1)

我最终使用@(Html.Raw(&#34;&lt;&#34;))

答案 2 :(得分: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>
    }

出于某种原因,unescapedecodeURIComponent都不适合我,但String.fromCharCode工作得很漂亮,考虑到'&lt;'将是唯一需要替换的角色。

感谢您的帮助!