Вопрос по asp.net, updatepanel, response.write, httpresponse – Response.Write и UpdatePanel

12

Я создаю vcard, который отправляю клиенту, используя следующий фрагмент кода:

Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", fileNameOnly));
Response.ContentType = "text/x-vcard";
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1");
Response.Write(vCard.ToString());
Response.End();

Тем не менее, мне нужно использовать vCards на странице, которая имеет элемент управления внутри и UpdatePanel. К сожалению, согласноПанель обновления и ответная запись  это не работает и вызывает ошибку. Мне интересно, каковы некоторые альтернативные способы отправки содержимого vcard / файла в браузер клиента, чтобы он отображал «открыть / сохранить»? диалог, который не включает Response.Write?

Только если вы сделаете панель обновления, чтобы отменить обновление ajax и сделать полный пост дыры страницы. Другой способ - использовать обработчик для отправки вашей x-vcard, и это лучше во всех случаях. Aristos

Ваш Ответ

4   ответа
1

Response.Write не будет работать при асинхронных событиях, Мое предложение состоит в том, чтобы удалить панель обновления, если она специально используется только с точки зрения VCard.

Альтернативно. Поместите элемент управления на панель обновлений и инициализируйте его значение в асинхронном событии. Теперь это будет работать.

1

отчика / страницы для обслуживания vcard?

Это, возможно, самый простой и чистый способ сделать это, и он не мешает любой другой обратной передаче (асинхронной или нет), связанной с панелью обновления.

35

Response.Write во время асинхронной обратной передачи. Какой бы элемент управления ни выполнялся, этот код должен быть добавлен какPostBackTrigger в панели обновления:

<Triggers>        
    <asp:PostBackTrigger ControlID="Button1" />
</Triggers>

Вы также можете сделать это в коде, если вы предпочитаете:

ScriptManager.GetCurrent().RegisterPostBackControl(Button1);
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

Response.Write, Я нашел обходной путь или, возможно, даже решение этой проблемы. ЗахватитьTextWriter даноRenderBeginTag управления сервером и напиши в него.

Я написал в блоге с примером здесь:http://timscyclingblog.wordpress.com/2013/03/07/asp-net-web-forms-response-write-in-an-updatepanel-dev-web/

Error: User Rate Limit Exceeded

Похожие вопросы