Как отправить XML-файл клиенту в ASP.NET MVC - PullRequest
5 голосов
/ 25 мая 2010

В ASP.NET MVC у меня есть таблица базы данных. Я хочу иметь кнопку на какой-либо странице просмотра, и если пользователь нажимает эту кнопку, мое приложение сгенерирует XML-файл, содержащий все строки в базе данных. Затем файл, содержащий XML, следует отправить клиенту, чтобы пользователь увидел всплывающее окно загрузки.

Аналогичным образом я хочу разрешить пользователю загружать XML-файл, содержимое которого будет добавлено в базу данных.

Какой самый простой способ разрешить пользователю загружать и скачивать файлы?

Спасибо за все ответы

EDIT: Это мой подход:

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

Где модель - DataContext. Однако это не работает. Когда я пытаюсь загрузить данные, я получаю эту ошибку:

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

Ответы [ 2 ]

3 голосов
/ 25 мая 2010

для загрузки части, вы можете использовать FileStreamResult

Эта страница содержит примеры для выгрузки и загрузки; проверить это.

1 голос
/ 25 мая 2010

XML-документ может иметь только один элемент верхнего уровня. После окончания элемента больше ничего не может быть. Похоже, что после элемента "</Series>" у вас есть "<<code>?xml version="1.0>",, что недопустимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...