使用JavaScript呼叫aspx後臺程式碼
阿新 • • 發佈:2021-10-28
方法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; }