在我的.aspx中:
public static void DoStuff(XmlDocument doc)
{
HttpResponse response = HttpContext.Current.Response;
string xmlString = doc.InnerXml;
string fileName = "ExportedForm.xml";
response.StatusCode = 200;
response.AddHeader("content-disposition", "attachment; filename=" + fileName);
response.AddHeader("Content-Transfer-Encoding", "binary");
// response.AddHeader("Content-Length", _Buffer.Length.ToString());
response.ContentType = "application-download";
response.Write(xmlString);
}
在我的handler.ashx中:
private void GenerateXml()
{
var JsonXmlData = HttpContext.Current.Request["objectToSend"];
XmlDocument doc = JsonConvert.DeserializeXmlNode(JsonXmlData);
SystemAuditView.DoStuff(doc); //systemauditview is the .aspx
}
如果我从点击事件中调用DoStuff
方法,则可以正常工作。但是,当我从代码后面调用它时,没有任何反应。我想我不知何故需要触发回发?或者这里的问题是什么?感谢
答案 0 :(得分:0)
尝试为SystemAuditView创建对象,然后尝试访问DoStuff方法。
由于DoStuff是一种常用方法,因此您应将此代码放在App_Code文件夹中。
答案 1 :(得分:0)
在不知道你的页面或命名空间或类名的情况下找出哪一个是SystemAuditView,我会说你错过了一个步骤" SystemAuditView.DoStuff()"
例如,要调用具有全名的方法,您必须编写代码:Page.namespace.class.method()来调用它。
或者,如果您不想这样做,则需要通过继承或使用链接页面。