Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不使用c#在asp.net应用程序中获取.csv文件?_C#_Asp.net_Csv - Fatal编程技术网

为什么不使用c#在asp.net应用程序中获取.csv文件?

为什么不使用c#在asp.net应用程序中获取.csv文件?,c#,asp.net,csv,C#,Asp.net,Csv,我试图通过以下代码单击按钮在客户端计算机上获取.csv文件: Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "text/csv"; ; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.AddHeader("Content-Dispositi

我试图通过以下代码单击按钮在客户端计算机上获取.csv文件:

Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType = "text/csv"; ;
    Response.ContentEncoding = System.Text.Encoding.Unicode;
    Response.AddHeader("Content-Disposition", "attachment; filename=WBS.csv");
    Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
    string output = "WBSCode,Description,TerritoryCode,Amount" + "\n";
    Response.Write(output);

问题是代码正在执行,但我的计算机中没有.csv文件。。有什么问题?这是我第一次这样做

您需要创建一个通用处理程序(.ashx文件),它将csv作为响应发送。然后,您的按钮只需要有一个指向该.ashx的url。下面是带有一些代码的处理程序示例

public class GetCsvFile : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/csv";
        context.Response.AddHeader("Content-Disposition", "attachment; filename=WBS.csv");
        context.Response.Write("WBSCode,Description,TerritoryCode,Amount\n");
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }
}

您需要创建一个通用处理程序(.ashx文件),它将csv作为响应发送。然后,您的按钮只需要有一个指向该.ashx的url。下面是带有一些代码的处理程序示例

public class GetCsvFile : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/csv";
        context.Response.AddHeader("Content-Disposition", "attachment; filename=WBS.csv");
        context.Response.Write("WBSCode,Description,TerritoryCode,Amount\n");
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }
}

你是从ashx handler那里做这件事的吗?是的,你应该这么做。基本上,按钮应该指定指向.ashx的url。然后,ashx将有您粘贴的代码。除非使用UpdatePanel,否则应该可以在单击按钮时执行此操作。除了执行此操作之外,没有其他方法吗?是的,我使用的是
更新面板
,因此我必须有一个.ashx处理程序?您是从.ashx处理程序执行此操作的吗?是的,您应该这样做。基本上,按钮应该指定指向.ashx的url。然后ashx将粘贴代码。除非使用UpdatePanel,应该也可以在点击按钮时执行此操作除了执行此操作之外,没有其他方法吗?是的,我使用的是
更新面板
,因此我必须有一个.ashx处理程序?好的,我能够解决它,谢谢各位,但在下载文件后,我仍然可以获得更新面板图片。。。我怎么解决这个问题呢?嗯。。我不太确定。尝试使用普通的html链接而不是按钮(asp:button),例如-
。好的,我可以解决它,谢谢大家,但在下载文件后,我仍然可以获得更新面板图片,还有一个查询。。。我怎么解决这个问题呢?嗯。。我不太确定。尝试使用普通html链接而不是按钮(asp:button),例如-