2011-12-14 8 views
0

:私は、クリックイベントからDoStuffメソッドを呼び出した場合、それは.ashxからメソッドを呼び出す - 私の.aspxの中> Response.Writeをファイル

private void GenerateXml() 
    { 

     var JsonXmlData = HttpContext.Current.Request["objectToSend"]; 

     XmlDocument doc = JsonConvert.DeserializeXmlNode(JsonXmlData); 

     SystemAuditView.DoStuff(doc); //systemauditview is the .aspx 
    } 

:私のhandler.ashxで

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

働くしかし、私がそれをコードの背後から呼び出すと、何も起こりません。私は何とかポストバックを引き起こす必要があると思いますか?または、ここで問題は何ですか?ありがとう

+1

クリックイベントから呼び出す方法のコード例と、コードの背後からどのように呼び出すか(どのような方法で)どうすればよいですか? –

+0

@RăzvanPanda 'SystemAuditView.DoStuff(doc);'コードbeindから。 clickはasp:buttonの標準クリックイベントです – Johan

+0

回答を編集してください。asp:ボタンに使用するコードとボタンOnClickハンドラで使用するコードを追加してください。あなたは 'SystemAuditView.DoStuff(doc);'というコードをどのようなイベントの後ろに置いていますか? –

答えて

0

SystemAuditViewのオブジェクトを作成し、DoStuffメソッドにアクセスしようとしてください。

DoStuffは一般的な方法なので、このコードをApp_Codeフォルダに入れる必要があります。コールする例えば

http://forums.asp.net/t/1291538.aspx

+0

問題は、コードVSからDoStuff(オブジェクト送信者、eventargs e)をボタンから呼び出すことと、DoStuff()を呼び出すことの違いです。ボタンクリックのみが機能します。 – Johan

0

SystemAuditViewである1を把握するためにあなたのページや名前空間やクラス名を知らなくても、私はあなたがステップ逃したと言うでしょう「SystemAuditView.DoStuffは()」

、フルネームのメソッドを呼び出すには、Page.namespace.class.method()をコーディングする必要があります。

また、そうしたくない場合は、継承またはリンクを使用してページをリンクする必要があります。

関連する問題