Solicitar que o usuário salve / abra o arquivo no ASP.NET C #

Não deve ser tão difícil descobrir como fazer isso. Basicamente estou tentando pegar uma string e deixar o cliente salvá-la quando clicam em um botão. Ele deve aparecer com uma caixa de diálogo Salvar / Abrir. Sem sinos extras e assobios ou qualquer coisa. Não é ciência de foguetes (ou assim eu teria pensado).

Parece haver várias formas diferentes (StreamWriter, HttpResponse, etc.), mas nenhum dos exemplos que consegui encontrar funciona corretamente ou explica o que está acontecendo. Desde já, obrigado.

Um exemplo de um dos muitos blocos de código que encontrei ...

(Este é apenas um exemplo, sinta-se à vontade para não basear sua resposta nisso.)

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();

A linha 2 diz para substituir essa string. Como? Este código foi anunciado como criar uma caixa de diálogo. Eu não deveria ter que definir um caminho no código, certo?

EDIT: resultado final (editado novamente, a exclusão tem que vir antes End ();)

        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();

questionAnswers(4)

yourAnswerToTheQuestion