簡體   English   中英

XmlTextWriter c#也打印頁面的html源代碼

[英]XmlTextWriter c# prints also html source code of the page

我具有生成xml文件的功能。問題是,當我下載生成的文件時,我的xml格式正確,但是在此末尾,我單擊了生成按鈕的頁面的html源代碼這個。 問題是什么? 這里的源代碼:

protected void lnkEsporta_Click(object sender, EventArgs e)
    {
        List<Eventi> lista_eventi = //load list

        string filename = "~/data/eventi.xml";



        XmlTextWriter tw = new XmlTextWriter(Server.MapPath(filename), Encoding.GetEncoding("ISO-8859-1"));
        tw.Flush();
        tw.Formatting = Formatting.Indented;

        tw.WriteStartDocument();
        tw.WriteStartElement("wrapper");
        tw.WriteElementString("project", GetDao().Get<Progetti, Int32>(lista_eventi[0].idprogetto).nome);

        tw.WriteStartElement("events");

        foreach (Eventi evento in lista_eventi)
        {
            tw.WriteStartElement("event");

            tw.WriteElementString("idEv", evento.idev.ToString());
            tw.WriteElementString("data", evento.DataInizio.ToString());
            tw.WriteElementString("sede", evento.sede.ToString());
            tw.WriteElementString("location", evento.location.ToString());
            tw.WriteElementString("video", evento.video ? "True" : "False");
            tw.WriteElementString("tutors", evento.tutors.ToString());
            tw.WriteElementString("technicians", evento.technicians.ToString());

            tw.WriteStartElement("aule");

            List<Aule> lista_aule = //load list
            foreach (Aule aula in lista_aule)
            {
                tw.WriteElementString("aula", aula.descrizione.ToString(), aula.idaula.ToString());
            }

            tw.WriteEndElement();

            tw.WriteEndElement(); //end of source event
        }

        tw.WriteEndElement();//end of source events
        tw.WriteEndElement();//end of source wrapper

        tw.WriteEndDocument();//end of source tag

        tw.Close();


        Response.ClearContent();
        //Response.End();
        Response.Clear();

        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.TransmitFile(Server.MapPath(filename));




    }

我在開始時有xml,然后從頁面源代碼開始...我該怎么辦? 非常感謝您的幫助!

我建議您缺少Response.End()

另請參見文件名和mime問題-ASP.NET下載文件(C#)

    Response.ContentType = "application/xml";
    Response.AddHeader("Content-Disposition", String.Format("inline; filename={0}.xml", Path.GetFileName(Path)));

    Response.WriteFile(path); // 
    Response.Flush();
    // Response.Close(); // end should do this anyway so optional
    Response.End(); // end forces the server to send the request immediately. Failing to 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM