当前位置:首页 > Windows程序 > 正文

c# razor @ html转义

2021-03-29 Windows程序

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

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

如访问: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,

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

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

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

不在<script>标签内的结果

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

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69877.html