[英]Encoding and Decoding Strings From Javascript to C# - Not Working
我遇到了一些字符串編碼的問題,也許是一個iis問題,或者我忽視的東西。 基本上,隨機地,當用戶提交更改時,文本將與%20一起存儲,就像它完全忽略我的解碼一樣。 它永遠不會發生在localhost,live或任何瀏覽器上; 它永遠不會一致,甚至不知道如何測試出了什么問題。
只是要粘貼基本部分:
文本控制接受用戶輸入
<asp:TextBox TextMode="MultiLine" runat="server" txtActionUpdate"></asp:TextBox>
然后
Javascript“轉義”並傳遞給ajax方法發送到codebehind
var tAction = escape(document.getElementById("txtActionUpdate").value);
然后
在webmethod我解碼如下:
Test = Microsoft.JScript.GlobalObject.unescape(tAction);
(以前是: Test = HttpUtility.UrlDecode(tAction); )
但是,上述兩種解碼選項都能完美地工作(對我而言?)。 但隨機地,當用戶正在使用它時,它將逐字地“跳過”解碼步驟並將其以編碼格式寫入數據庫(即:此%20is%20a%20Test%20string),就好像我從未有過代碼。
我們有多個客戶(單獨的URL),但有一個代碼庫。 在發布期間,我首先刪除然后發布,清除應用程序池,讓用戶清除瀏覽器緩存(實際上討厭后者),但這似乎永遠不會保持一致。 我有一種感覺,這是一些“緩存”或“服務器設置”問題而不是代碼問題...讓我看起來很糟糕! ;) 大聲笑。 有人有一些預感?
我不會為此(或其他任何東西)使用escape
。 我使用encodeURIComponent
,然后使用HttpUtility.UrlDecode
進行解碼(我認為; MSDN現在已經關閉了,顯然)。
我的猜測是,在客戶端的某個地方,數據被編碼兩次,然后導致你看到的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.