No need IFrame you can Register script in you page and use window.open for open new webform with out ajax as contain you dowload file logic on page load event.
=====page from main script=======
output = @"C:\\Myfile.csv"
ScriptManager.RegisterStartupScript(Page, GetType(), "MyScript", "window.open(' FileDownloader.aspx?ifile=" + HttpUtility.UrlEncode(output) + "');", true);
=========New page web form for loadload file===========
protected void Page_Load(object sender, EventArgs e)
{
string output = Page.Request.QueryString.Get("ifile");
string iUrl = HttpUtility.UrlDecode(output);
string Filesname = "Test Export.xlsx";
FileInfo file = new FileInfo(iUrl);
if (file.Exists)
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=" + Filesname);
Response.AddHeader("Content-Type", "application/Excel");
Response.ContentType = "application/vnd.xls";
Response.AddHeader("Content-Length", file.Length.ToString());
Response.WriteFile(file.FullName);
Response.End();
}
else
{
Response.Write("This file does not exist.");
}