я этоКак отредактировать поток ответов с помощью jquery?
MemoryStream export = new MemoryStream();
iCalendarSerializer serializer = new iCalendarSerializer(iCal);
serializer.Serialize(export,System.Text.Encoding.UTF8);
return export;
так я использую C# DDay.iCal библиотеку для экспорта своих календарей. Сериализация принимает «поток», поэтому я передал ему поток памяти.
У меня теперь есть общий обработчик, который вызывает метод, содержащий вышеуказанный код.
public class CalendarHandler : IHttpHandler
{
private Calendar service;
private Membership membershipS;
public void ProcessRequest(HttpContext context)
{
service = new Calendar();
membershipS = new Membership (null);
string userName = context.User.Identity.Name;
Guid userId = membershipS.GetUsersId(userName);
context.Response.ContentType = "text/calendar";
// calls the export calendar(the code that showed above that uses dDay ical.
var t = service.ExportCalendar(userId);
t.WriteTo(context.Response.OutputStream);
}
public bool IsReusable
{
get
{
return false;
}
}
}
Итак, теперь я написал icalendar для выходного потока. Теперь у меня есть jquery-сообщение, которое идет на этот метод, и теперь я не уверен, как взять результат OutputStream, который получит сообщение jquery, и сделать его всплывающим окном с диалоговым окном сохранения.
$('#ExportCalendar').click(function(e)
{
$.post('../Models/CalendarHandler.ashx', null, function(r)
{
});
return false;
});
@Eilon +1 Вы правы в этой ситуации. Я построил небольшую библиотеку JS/Flash, которая * разрешает это, но она предназначена для использования как для генерации *, так и для сохранения файла на стороне клиента. Не создавайте файл на сервере, а затем сохраняйте его на клиенте: http://downloadify.info –