Создайте xml и сохраните его при вызове универсального обработчика - PullRequest
1 голос
/ 14 декабря 2011

Я использую следующий код для сохранения XML-файла

  HttpResponse response = HttpContext.Current.Response;

    string xmlString = "<xml>blah</xml>";
    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);

Это прекрасно работает, например, при привязке к событию onlick кнопки.Но я генерирую мой xml в универсальном handler.ashx.Поэтому я хочу подождать, пока вызов ajax не будет завершен, прежде чем я сделаю все выше.Могу ли я сделать все это в обработчике?Вызов ajax выполняется с помощью jquery, а данные xml основаны на полях ввода на моей странице.Спасибо

1 Ответ

1 голос
/ 10 декабря 2012

Я бы использовал что-то вроде этого.

using System;
using System.Web;

public class GenerateXML : IHttpHandler
{
    public bool IsReusable {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context) {
        var resp = context.Response;

        resp.ContentType = "text/xml";
        resp.ContentEncoding = System.Text.Encoding.UTF8;

        resp.Write( "<xml>i am xml</xml>" );
    }
}

Затем измените web.config вашего проекта.

...