Опять же, задавая вопросы MVC noob.Простите, что у меня нет опыта.
У меня есть ситуация, когда я использую маршрут MVC для возврата большого файла XML.Иногда это может быть очень большим.В настоящее время я использую StringBuilder для создания нужного XML-вывода, а затем возвращаю его так:
var sb = new StringBuilder();
XmlObject.WriteXml(sb);
return Content(sb.ToString(), "text/xml", Encoding.UTF8);
Я сталкиваюсь с тем, что (по разным причинам) блог XML может занятьдовольно долгое время для генерации.
Внутри метода XmlObject.WriteXml () есть вызовы к множеству других маленьких методов, которые выводят биты и кусочки XML по мере их вызова, поэтому я НАЧИНАЮ сразу создавать строку XMLЭто займет некоторое время, чтобы закончить.Каждый из этих методов принимает StringBuilder в качестве аргумента, поэтому может создать его и затем передать его повсеместно, используя sb.Append () в каждом маленьком методе для создания окончательного блоба XML.
ОК, так чтоя хотел бы начать возвращать что-то клиенту, как только строка начнет собираться.В Webforms я бы заменил все параметры StringBuilder на HttpResponse и использовал бы HttpResponse.Write () вместо StringBuilder.Append (), аналогично следующему:
this.Response.BufferOutput = false;
XmlObject.WriteXml(Response);
Тогда как каждый маленький кусочекXML был записан в Reponse, текст будет отправлен клиенту.
Проблема, с которой я столкнулся, заключается в том, что ActionResult должен иметь инструкцию return.Я не знаю, как лечить в подобной ситуации, используя маршрут MVC и ActionResult.Возможно, мне нужно использовать что-то кроме ActionResult?
Спасибо всем!