此代碼在另一個頁面的PageLoad函數中工作,並且我只是重定向到它。但是當我將它保留在同一頁面時,它會引發錯誤 -如何在asp.net中下載文件而不指向其他頁面
無法評估表達式,因爲代碼已經過優化或本機框架位於調用堆棧之上。
protected void Download(object sender, CommandEventArgs e)
{
//Response.Redirect("/Forms/Download.aspx?file="+sFile, false);
string sFile = "~/Attachments"+e.CommandArgument.ToString();
If(File.Exists(Server.MapPath(sFile)))
{
string Path = Server.MapPath(sFile));
FileInfo file = new FileInfo(path);
if (file.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename="
+file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.Flush();
Response.WriteFile(file.FullName);
Response.End();
}
}
}
上次我得到這個錯誤時,有人建議給endResponse添加'false'。但是不知道這裏的位置。
如果這是在Download.aspx.cs。然後,該函數的返回類型是什麼。 – Ruby
您可以簡單地使用對象作爲返回類型。 – woutervs