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