![](/img/trans.png)
[英]How to pass array from Asp.net server side to Javascript function on client side
[英]How does one pass string contains '\' from from asp.net server side to Javascript function?
從ASP.NET服務器端到javascript函數,一個傳遞字符串如何包含“ \\”?
在客戶端檢查完參數后,所有'\\'都替換為'',而在服務器端將'\\'替換為'%5C'無效。
任何想法?
\\
是一個特殊字符-基本上它會在字符后“轉義”。 嘗試傳遞\\\\
代替。 順便說一句-如果您使用的是C#,則可以在字符串前使用@字符,以避免需要將其作為雙斜杠傳遞,例如
string path = @"c:\documents\mydocuments";
我為此找到了解決方案。
parameter.Replace("\\\\", "\\\\\\\\")
解決它。
您是否正在使用ASP.NET編寫JavaScript字符串文字? 即。 就像是:
Page.RegisterStartupScript("foo",
"<script type='text/javascript'>"+
" var bar= '"+myBarValue+"';"+
"</script>"
);
如果是這樣,那么您要將文本嵌入到帶分隔符的JavaScript字符串文字中,並且必須使用遵循字符串文字語法的轉義方案。 特別是文本中的任何\\
字符都必須用\\\\
進行轉義,並且任何'
字符都必須用\\'
替換,因為在這種情況下,這就是使用的分隔符(JavaScript可以使用兩種引號來分隔字符串)。
而且,如果像上面的示例一樣使用內聯<script>
塊,實際上是將文本嵌入到字符串常量中的HTML元素中,因此也必須進行一些HTML轉義。 特別是,您必須分解文本中的任何</
序列,因為那樣會結束腳本塊。 另外,在XHTML中,沒有CDATA元素,因此,您還必須對文本中的任何<
或&
字符進行&符號轉義,除非這將使其與舊版HTML解析器不兼容。 因此,要解決所有這些問題,最好也使用JavaScript字符串文字轉義符,將<
替換為\\x3C
並將&
替換為\\x26
。
理想情況下,您將要做的就是將簡單字符串傳遞給JSON編碼器庫,該庫將負責將其適當地轉義為JavaScript。 但是,我不知道一個.NET會像上面那樣為您轉義HTML,因此您仍然需要一些替換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.