Avatar billede dotnewbi Juniormester
12. januar 2009 - 14:47 Der er 5 kommentarer og
1 løsning

return xml fra asp.net side

Hej Eksperter,

Jeg sidder og arbejer med en ajax chat, som skal hente og gemme sit indhold i en mssql db, det er der som sådan ikke noget problem. Men når jeg skal hente data via ajax ind i chatten kalder jeg en aspx side som skal return xml (lege xml file), men jeg kan ikke få den til at gøre det ordenligt.
I asp 3 og php gjorte man det ved at siden stort set var tom og bare retuneret et string som indeholdt alle xml koden men det virker ikke i aspx jeg har prøvet med :

<%@ Page Language="C#" %>


<%

    string TheXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root>";
    int max = 30;
    for (int i = 0; i <= max; i++)
    {

        TheXml += "<message id="+ i +">";
        TheXml += "<user> User num " + i + "</user>";
        TheXml += "<text> A test text !</text>";
        TheXml += "<time>12-01-2009 14:16</time>";
        TheXml += "</message>";



    }
    TheXml += "</root>";
    Response.Write(TheXml);


%>
men det virker ikke, så mit spørgsmål er hvordan gør man det i asp.net med c#
Avatar billede arne_v Ekspert
12. januar 2009 - 15:01 #1
Put koden i Page_Load, saet Response.ContentType til "text/xml" og skriv saa med Response.Write.
Avatar billede arne_v Ekspert
12. januar 2009 - 15:02 #2
Et eksempel fra lageret:

<%@ import namespace="System.Xml" %>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    XmlNode root = doc.CreateElement("Collection");
    doc.AppendChild(root);
    XmlNode user = doc.CreateElement("User");
    user.AppendChild(doc.CreateTextNode("Texttexttext"));
    root.AppendChild(user);
    doc.InsertBefore(doc.CreateXmlDeclaration("1.0", "UTF-8", "yes"), doc.DocumentElement);
    Response.Clear();
    Response.AddHeader("Content-Disposition", "attachment;filename=xmlfile2.xml");
    Response.AddHeader("Content-Length", doc.OuterXml.Length.ToString());
    Response.ContentType = "application/octet-stream";
    Response.Write(doc.OuterXml);
    Response.End();
}
</script>
Avatar billede arne_v Ekspert
12. januar 2009 - 15:03 #3
Hm. Det var nok et daarligt eksempel. Det var for at faa filen til download.

    Response.AddHeader("Content-Disposition", "attachment;filename=xmlfile2.xml");
    Response.AddHeader("Content-Length", doc.OuterXml.Length.ToString());
    Response.ContentType = "application/octet-stream";

skal erstattes af:

    Response.ContentType = "text/xml";
Avatar billede arne_v Ekspert
12. januar 2009 - 15:03 #4
Og du behoever ikke bruge XmlDocument.
Avatar billede dotnewbi Juniormester
12. januar 2009 - 15:14 #5
Det virker perfect takker !! :) Smid et svar!
Avatar billede arne_v Ekspert
12. januar 2009 - 15:46 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester