我正在尝试将一些javascript与服务器端变量结合起来。
我在这里试图取代“<”标志与实际小于标志:
@{
string age = '<1'; // assume I got it from the QueryString
<text>$('#select1').val('@age'.replace('<','<'));</text> // and when the parser sees the '<' symbol it thinks I'm trying to close the <text> tage
}
是否可以转义/忽略该符号?
答案 0 :(得分:1)
试试这个:
注意,它必须在脚本标签之间才能工作..(我假设情况确实如此)
<script>
@{
string age = '<1'; // assume I got it from the QueryString
@: $('#select1').val('@age'.replace('<','<')); // 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 = '<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('<',String.fromCharCode(LESS_THAN_CHARCODE)))</text>
}
出于某种原因,unescape
和decodeURIComponent
都不适合我,但String.fromCharCode
工作得很漂亮,考虑到'&lt;'将是唯一需要替换的角色。
感谢您的帮助!