c# razor @ html转义


今天发现一个很神奇的现象

在cshtml页面中,使用@Request.QueryString,在<script>标签内和在<html>文本标签内所显示的内容不一样

如访问http://localhost:60086/FakeLogin/?a=52&b=dfas

<script>"@Request.QueryString"</script>

页面显示的结果是

"a=52&amp;b=dfas" 

即对&进行了html转义,这就导致b的值在后台querystring中取不到。

然而,如果不在script标签内,则显示的内容就是querystring的内容,即

a=52&b=dfas

之后我以为是razor引擎自动把script标签内的后台内容转义,但是我发现对于其他的需要转义的字符如< " 等,都只是进行了简单的urlencode,

比如,访问http://localhost:60086/FakeLogin/?a=52&b=dfas<>

<script>标签内显示的结果是

a=52&amp;b=dfas%3c%3e

不在<script>标签内的结果

a=52&b=dfas%3c%3e

这个我暂时还不知道是什么原因,现在把这个问题记录下来,如果有朋友知道也请不吝赐教

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM