get方式傳值包含中文時的一種解決辦法

作重視項目時,前臺代碼中藝員編號須要通過後臺傳值到另外一個頁面,未料當編號中有中文時,傳到後臺就已是亂碼了,經搜索,發現一個解決辦法是用js對中文encode後再在後臺用Server.UrlDecode()解密:ide

前臺:this

  
  
  
  
  1. <a class="edit" id="btnEditExperience" href="@Url.Action("ExperienceEdit")?experienceId={experience_obj}&artisteId=@Model.Id&code=@Model.Code" onclick="correctHref(this,'Artiste_Experience_Table');" rel="ExperienceEdit_Dialog" target="dialog"  mask="true" height="300" width="500"  closeBackground="false" submitBtn="dialogFormSubmit" isAttachShadow = "true"> 
  2.                 <span>修改經歷</span></a> 

js:spa

  
  
  
  
  1. function encodeCh(){ 
  2.         var href = $("#btnAddExperience").attr("href"); 
  3.         var front = href.substr(0,href.indexOf("code")+5); 
  4.         var code = href.substr(href.indexOf("code")+5);  
  5.         var encodedCode = escape(code); 
  6.         var newHref = front + encodedCode; 
  7.         $("#btnAddExperience").attr("href",newHref);  
  8.     } 

後臺:code

  
  
  
  
  1. public ActionResult ExperienceEdit(int experienceId, int artisteId) 
  2.         { 
  3.             string code = Request.QueryString["code"]; // Request.QueryString接收get傳值
  4.             ViewData["ArtisteId"] = artisteId; 
  5.             ViewData["code"] = Server.UrlDecode(code); 
  6.  
  7.             PerformanceExperienceData model = new PerformanceExperienceData(); 
  8.             if (experienceId != 0) 
  9.             { 
  10.                 ArtisteService ass = new ArtisteService(); 
  11.                 model = ass.GetExperienceById(experienceId); 
  12.             } 
  13.             return View(this.ViewPath("ExperienceEdit"), model); 
  14.         } 
相關文章
相關標籤/搜索