C# 相当于响应。在Windows应用程序中

C# 相当于响应。在Windows应用程序中,c#,asp.net,winforms,C#,Asp.net,Winforms,我正在尝试将文本数据传输到文本文件并使其可下载。在Web应用程序中使用响应很容易。但当在windows上传输相同的内容时,我无法得到解决方案,我们可以通过将数据写入文本文件来实现,但如何使该文件可下载 这是我编写的Web格式的代码 private void ButtonSaveText_Click(object sender, EventArgs e) { //Build the Text file data. string TextFileDat

我正在尝试将文本数据传输到文本文件并使其可下载。在Web应用程序中使用响应很容易。但当在windows上传输相同的内容时,我无法得到解决方案,我们可以通过将数据写入文本文件来实现,但如何使该文件可下载

这是我编写的Web格式的代码

    private void ButtonSaveText_Click(object sender, EventArgs e)
    {
        //Build the Text file data.
        string TextFileData = string.Empty;
        TextFileData = TextFileData + "PAY SLIP FOR THE MONTH --------------" + Environment.NewLine + Environment.NewLine + Environment.NewLine;
        for (int i = 0; i < GridViewPaySlip.Rows.Count; i++)
        {
            for (int j = 0; j < GridViewPaySlip.HeaderRow.Cells.Count; j++)
            {
                TextFileData += GridViewPaySlip.HeaderRow.Cells[j].Text + "\t\t\t" + GridViewPaySlip.Rows[i].Cells[j].Text + Environment.NewLine + Environment.NewLine + Environment.NewLine;
            }
        }

        //Download the Text file.
        Response.Clear();
        Response.Buffer = true;
        string FileName = String.Format("{0}__{1}{2}", "payslip", EmployeeIdTemp, ".txt");
        Response.AddHeader("content-disposition", "attachment;filename=" + FileName);
        Response.Charset = "";
        Response.ContentType = "application/text";
        Response.Output.Write(TextFileData);
        Response.Flush();
        Response.End();
    }
private void按钮SaveText_单击(对象发送者,事件参数e)
{
//构建文本文件数据。
string TextFileData=string.Empty;
TextFileData=TextFileData+“当月工资单-----------------”+Environment.NewLine+Environment.NewLine+Environment.NewLine;
对于(int i=0;i
关于表单应用程序和网站之间的区别,以及web服务器的角色,我认为这里有一点误解

创建文本文件非常简单:

using (System.IO.StreamWriter file = new System.IO.StreamWriter("C:\\example.txt"))
{
    file.WriteLine(TextFileData);
}
就这样。还有其他方法,该示例不涉及编码或任何内容,但它保存了文件

就“使其可下载”而言,这实际上与应用程序无关。相反,您需要确保将文本文件保存到web服务器所服务的文件夹中(并且web服务器支持该文件类型)

newstreamwriter(“D:\\Websites\\paysiles\\paysile\uquot+EmployeeIdTemp+”.txt”)

或者你可能使用的任何路径

希望有帮助

正如“Octopoid”所说,你有点困惑

想想看。你不能在桌面应用程序中“下载”。在web应用程序中,需要将文件从服务器下载到客户端

在桌面应用程序中,没有服务器和客户端,因此“下载”的概念不存在

您可能正在考虑这样一个事实,即web应用程序中的下载可能涉及一些对话框,允许将下载的文件保存在用户选择的位置。这就是允许您执行的操作。例如:

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    using (var stream = saveFileDialog1.OpenFile())
    {
        // code to write to the stream
    }
}

看起来您正在尝试将文件从Web下载到Winform应用程序。您可能应该尝试这里描述的WebClient;您可以将这些内容保存到特定位置的文件中,并提示“保存”对话框(类似于我们从web应用程序下载的内容)@不,我正在使用DataGridView数据编写文件,并希望使该文件在ButtonClick@ArindamNayak我不是这样做的,只是在输出Downlodable文件保存的文件中转储值,没有其他内容,没有写入,没有临时文件creation@AlokSrivastava我的观点是,如果您试图将web应用程序转换为windows应用程序,您可能需要遵循此路径。这是假设您实际上是指“使文件可下载”。如果您的意思是“允许用户保存文件”,那么John的社区wiki答案已经涵盖了您。