none
C#ASPX內JS傳資料給C#Console 問題請教 RRS feed

  • 問題

  •   

    1.環境說明
      WEB 端:C# aspx +js
      本地console端:C# console

    2.要傳遞的原始資料 (每一行後面有\n\r)
    中文第一行  ,100元,XXX,3 
    中文第二行  ,200元,YYY,3
    中文第三行  ,300元,ZZZ,3

    也希望接收端完整呈現。(若單純WEB 下載,看資料是正常)

    對象:自訂PC的CONSOLE  (URL PROTOCAL)

    方案A:直接傳字串
    A1.WEB 端:
      由JS 將多筆資料,串成字串  
      let str +=str+"\n";

    A1. 利用JS     傳資料 給本地端的console

                var link = document.createElement("a");
                document.body.appendChild(link);
    
                link.href = "AgentXX:" + data;
                link.click();  
      
          




    A2.本地端收到資料

    static void Main(string[] args)
            {
    
    
                Program p = new Program();
                
             
                int lenx = args[0].IndexOf(":")+1;          
                string readed = args[0].Substring(lenx, args[0].Length-lenx);            
                var readed_new =Uri.UnescapeDataString(readed);  //解碼
               
                Console.WriteLine(readed_new);
    
    
                Console.ReadKey();//停止畫面
    
            } //---void Main



    A3.結果沒有分行:(不知是解碼後分行消失,或是傳過來的資料就已沒有分行?)
    中文第一行  ,100元,XXX,3中文第二行  ,200元,YYY,3中文第三行  ,300元,ZZZ,3

    分行不見了

    方案B:先轉JSON 再傳

    B1.利用JS  傳資料 給本地端的console

          arr.push(每行筆資料); 
    	  
          link.href = "AgentXX:" + JSON.stringify(arr);   



         其他都一樣

    B2.本地端接收
       程式碼都一樣

    ["中文第一行  ,100元,XXX,3\n","中文第二行  ,200元,YYY,3\n","中文第三行  ,300元,ZZZ,3"]
    那這樣 該如何 解析成
    中文第一行  ,100元,XXX,3
    中文第二行  ,200元,YYY,3
    中文第三行  ,300元,ZZZ,3

    謝謝!


    2020年6月23日 上午 09:10

所有回覆

  • 1.環境說明
      WEB 端:C# aspx +js
      本地console端:C# console

    2.要傳遞的原始資料
    中文第一行  ,100元,XXX,3
    中文第二行  ,200元,YYY,3
    中文第三行  ,300元,ZZZ,3

    也希望接收端完整呈現。(若單純WEB 下載,看資料是正常)

      
    方案A:直接傳字串
    A1.WEB 端:
      由JS 將多筆資料,串成字串  
      let str +=str+"\n";

    A1. 利用JS     傳資料 給本地端的console
                var link = document.createElement("a");
                document.body.appendChild(link);
    
                link.href = "AgentXX:" + data;
                link.click();  
      


        
    A2.本地端收到資料
     
    static void Main(string[] args)
            {
    
    
                Program p = new Program();
                
             
                int lenx = args[0].IndexOf(":")+1;          
                string readed = args[0].Substring(lenx, args[0].Length-lenx);            
                var readed_new =Uri.UnescapeDataString(readed);  //解碼
               
                Console.WriteLine(readed_new);
    
    
                Console.ReadKey();//停止畫面
    
            } //---void Main


    A3.結果沒有分行:(不知是解碼後分行消失,或是傳過來的資料就已沒有分行?)
    中文第一行  ,100元,XXX,3中文第二行  ,200元,YYY,3中文第三行  ,300元,ZZZ,3

    分行不見了

    方案B:先轉JSON 再傳

    B1.利用JS  傳資料 給本地端的console
          arr.push(每行筆資料); 
    	  
          link.href = "AgentXX:" + JSON.stringify(arr);   


         其他都一樣

    B2.本地端接收
       程式碼都一樣

    ["中文第一行  ,100元,XXX,3\n","中文第二行  ,200元,YYY,3\n","中文第三行  ,300元,ZZZ,3"]
    那這樣 該如何 解析成
    中文第一行  ,100元,XXX,3
    中文第二行  ,200元,YYY,3
    中文第三行  ,300元,ZZZ,3

    謝謝!
    還是 AJAX 可以支援使用URL PROTOCL ,目前試過,沒反應...
    謝謝!
    2020年6月23日 上午 09:31
  • 你是使用 csv 格式,不被 JSON 模組支援,直接用 xmlhttp 即可。

    最好比對 Server 端輸出是否為 utf8 ,有沒有帶 BOM ,再看看你 xmlhttp 如何解碼。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年6月25日 下午 12:18