前台js escape及后台C# Server.UrlEncode 對QueryString傳參的含~!@#$%^&*等特殊字符的處理


通常情況下,我們在List列表頁面,會包含Create,Edit,Delete等操作按鈕,

而通常的處理是:

Create按鈕跳轉到DataCreate.aspx

Edit按鈕跳轉到DataEdit.aspx?DataId=1&DataName=abc

一般在后台通過 string dataName = Request.QueryString["DataName"]的方式 來獲取傳入的參數

然后 var DataModel = getModelByDataName(dataName)

 

在DataId=1&DataName=abc時,沒有特殊字符,參數接收正確,一切處理順利

但在DataId=1&DataName=abc~!@#$%^&* 時,因為包含了&等特殊字符 ,參數接收錯誤

 

常用處理如下:

在前台js,用escape 進行處理  

    DataEdit.aspx?DataId=1&DataName=escape(abc~!@#$%^&*)

   后台正常接收就可以了

 

在后台c#,用Server.UrlEncode 進行處理  

   "DataEdit.aspx?DataId=1&DataName=" + Server.UrlEncode(Request.QueryString["DataName"].ToString();

   進行跳轉等處理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM