2009-12-09 4 views
0

Я тестировал это в IIS 6.1, IE 7, ASP.NET 3.5 SP1.Содержимое ответа ASP.NET

У меня есть файл скачать в методе в моей ASPX коде:

Response.ContentType = contentType; 
Response.AppendHeader("Content-Disposition", contentDisposition); 
Response.BinaryWrite(file); 

Это прекрасно работает, но если я пытаюсь изменить какой-либо из моей стороны разорвать контролирует изменения не вступят в силу. Я выделил это для вызова ContentType, это, по-видимому, выбивает все ожидающие изменения в поток Response при вызове? Звучит это знакомо кому-нибудь?

Если код принимает альтернативную ветку и вызов для загрузки не срабатывает, разметка изменяется, как ожидалось.

Любые предложения о том, как я могу это исправить, и чтобы страница закрашивала вложение и обновляла пользовательский интерфейс в том же потоке ответов?

Это специально для обновления ValidationSummary, поэтому я могу взорвать JS в событии PageRequestManager в качестве последнего средства, но я бы предпочел не полагаться на JS для этого.

ответ

1

Не знаете, что вы пытаетесь сделать - пытаетесь ли вы одновременно загружать файл и обновлять страницу HTML, с которой они связаны? Это не то, как работает HTML.

Если вы хотите достичь этого результата, вам в основном придется отображать мета-редирект, который идет в файл, который возвращается в HTML, таким образом страница будет загружаться, а затем загрузка начнется (как и вы см. на многих сайтах загрузки).

+0

Спасибо за мету перенаправить отзыв. – blu

1

Как сказал Фейхам, я не совсем понимаю, что вы пытаетесь сделать. Несколько советов, которые могут помочь:

  1. Имейте в виду, что фаза визуализации, когда контент из разметке и управления генерируется, происходит, как почти самый последний этап в коде позади (ну после Page_Load)
  2. После промывать заголовки, вы не можете установить их снова
  3. управления может переопределить некоторые заголовки HTTP
  4. вы не можете смешивать загрузку файлов и HTML-разметку в том же ответ HTTP
Смежные вопросы