gpt4 book ai didi

c# - 我是否以错误的方式使用处理程序?

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:04 25 4
gpt4 key购买 nike

我以前从未使用过 HTTP 处理程序,我已经使用了一个,但我不确定我是否真的正确使用了它。我生成了一个字符串,该字符串将保存为 CSV 文件。当用户单击按钮时,我希望打开下载对话框 框,以便用户可以保存文件。我的工作有效,但我一直在阅读有关修改 web.config 文件的内容,但我不必这样做。

我的处理程序:

private string _data;
private string _title = "temp";


public void AddData(string data)
{
_data = data;
}



public bool IsReusable
{
get { return false; }
}

public void ProcessRequest(HttpContext context)
{

context.Response.ContentType = "text/csv";
context.Response.AddHeader("content-disposition","filename=" + _title + ".csv");
context.Response.Write(_data);
context.Response.Flush();
context.Response.Close();

}

这是来自允许用户下载的页面:(点击按钮)

string dataToConvert = "MYCSVDATA....";

csvHandler handler = new csvHandler();
handler.AddData(dataToConvert);

handler.ProcessRequest(this.Context);

这工作正常,但我从未见过实例化处理程序并且似乎总是修改 web.config 的示例。难道我做错了什么?

谢谢

最佳答案

在我看来,它根本没有真正利用它是处理程序这一事实。为实现您并不真正使用的接口(interface)创建一个单独的类而不是将代码放在现有页面类中有什么好处?您只是对响应做一些事情 - 那么为什么不直接在页面内做呢?

修改 web.config 的典型方法是因为您希望处理程序实际处理请求 - 而在您的情况下,页面正在接收请求,并且只是询问发生实现的对象将数据转储到响应中的处理程序接口(interface)。

特别是,这个处理程序是否可以用作正常响应的独立处理程序?感觉它只会在您调用 AddData 时做任何有用的事情...如果您确实在 web.config 中注册它,它只会响应一个空的 csv 文件(或者可能是一个异常(exception)),对吗?如果是这样的话,我真的不认为它应该首先实现 IHttpHandler - 它会误导以后查看它的其他开发人员。

关于c# - 我是否以错误的方式使用处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com