title: Prompt user to save/open file in ASP.NET C#
body: <p>It shouldn't be this hard to find out how to do this. Basically I'm trying to take a string and let the client save it when they click a button. It should pop up with a Save/Open dialog. No extra bells and whistles or anything. It's not rocket science, (or so I would've thought).</p>
  
  <p>There seems to be a ton of different ways, (StreamWriter, HttpResponse, etc.), but none of the examples I've been able to find work properly or explain what's going on. Thanks in advance.</p>
  
  <p>An example one of the many blocks of code I've found...</p>
  
  <p>(This is just an example, feel free to not base your answer around this.)</p>
  
  <pre><code>String FileName = "FileName.txt";
  String FilePath = "C:/...."; //Replace this
  System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
  response.ClearContent();
  response.Clear();
  response.ContentType = "text/plain";
  response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
  response.TransmitFile(FilePath);
  response.Flush();
  response.End();
  </code></pre>
  
  <p>Line 2 says to replace that string. How? This code was advertised as bringing up a dialog. I shouldn't be having to set a path in the code, right?</p>
  
  <p>EDIT: Final Outcome (Edited again, Delete has to come before End();)</p>
  
  <pre><code>        string FilePath = Server.MapPath("~/Temp/");
          string FileName = "test.txt";
  
          // Creates the file on server
          File.WriteAllText(FilePath + FileName, "hello");
  
          // Prompts user to save file
          System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
          response.ClearContent();
          response.Clear();
          response.ContentType = "text/plain";
          response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
          response.TransmitFile(FilePath + FileName);
          response.Flush();
  
          // Deletes the file on server
          File.Delete(FilePath + FileName);
  
          response.End();
  </code></pre>