2010-05-25 19 views
5

En un ASP.NET MVC Tengo una tabla de base de datos. Quiero tener un botón en alguna página de vista, si algún usuario hace clic en ese botón, mi aplicación generará un archivo XML que contiene todas las filas en la base de datos. Luego, el archivo que contiene XML debe enviarse al cliente para que el usuario vea una ventana emergente de descarga.¿Cómo enviar archivos XML para el cliente en ASP.NET MVC

mismo modo que desea permitir al usuario añadir un archivo XML cuyo contenido será añadido a la base de datos.

¿Cuál es la forma más sencilla para que la carga y descarga de archivos de usuario?

Gracias por todas las respuestas

EDIT: Este es mi método:

public FileContentResult Download() { 
     if(model.Series.Count() < 1) { 
      byte[] content = new byte[0]; 
      return new FileContentResult(content, "Series"); 
     } 
     XmlSerializer serializer = new XmlSerializer(model.Series.FirstOrDefault().GetType()); 

     MemoryStream xmlStream = new MemoryStream(); 
     foreach (Series s in model.Series) { 
      serializer.Serialize(xmlStream, s); 
     } 

     byte[] content2 = new byte[xmlStream.Length]; 
     xmlStream.Position = 0; 
     xmlStream.Read(content2, 0, (int) xmlStream.Length); 

     return File(content2, "Series"); 
} 

Dónde modelo es DataContext. Sin embargo, esto no funciona. Cuando trato de descargar los datos me sale este error:

XML Parsing Error: junk after document element 
Location: http://localhost:1399/Xml/Download 
Line Number 7, Column 10:</Series><?xml version="1.0"?> 
---------^ 

Respuesta

3

para descargar parte, podría utilizar FileStreamResult

This page tiene ejemplos para la carga y descarga; Echale un vistazo.

1

Un documento XML sólo puede tener un elemento de nivel superior. Después del final del elemento, no puedes tener nada más. Parece que después de que el elemento de "</Series>" usted tiene "< ?xml version="1.0>", que es válido.

Cuestiones relacionadas