1. 程式人生 > 其它 >使用JavaScript呼叫aspx後臺程式碼

使用JavaScript呼叫aspx後臺程式碼

方法1:js同步呼叫

觸發:

onclick="javascript:share('<%# Eval("id_File") %>')"

頁面函式:

 function share(id_File) {
            var a = '<%= ShareDoc("' + id_File + '") %>';
            alert(a);

        }

後臺cs函式:

  public string ShareDoc(string id_File)
        {
            return "後臺函式[" + id_File + "]";
        }

方法2:JQuery ajax非同步呼叫

觸發:

onclick="javascript:download('<%# Eval("FileNewName") %>','<%# Eval("FileExtName") %>')"

前臺函式:

   function download(p1, p2) {
           
            $.ajax({
                url: 'MyDocList.aspx/DownloadDoc',
                contentType: 'application/json; charset=utf-8',
                datatype: 'json',
                type: 'POST',
                data: '{FileNewName:"' + p1 + '",FileExtName:"' + p2 + '"}', //引數
                success: function(result) {//成功後執行的方法
                    alert(result.d); // 後臺返回值
                },
                error: function(result) {//失敗執行的方法
                    alert("error:" + result.responseText);
                }
            });
         
        }

後臺cs函式:

  [WebMethod]
        public static string DownloadDoc(string FileNewName, string FileExtName)
        {

            string filePath = Server.MapPath(string.Format("~/FileUpload/{0}.{1}", FileNewName, FileExtName));
            if (System.IO.File.Exists(filePath))
            {
                FileInfo file = new FileInfo(filePath);
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //解決中文亂碼
                Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name)); //解決中文檔名亂碼    
                Response.AddHeader("Content-length", file.Length.ToString());
                Response.ContentType = "appliction/octet-stream";
                Response.WriteFile(file.FullName);
                Response.End();
            }
            return filePath;
        }