Отклик Response.Write в блоке кода появляется за пределами HTML - PullRequest
1 голос
/ 03 августа 2011

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

1 Ответ

1 голос
/ 03 августа 2011

Response.Write пишет в поток ответов. Причина, по которой ваши данные добавляются в начало потока ответов, может заключаться только в том, что событие, в котором запускаются ваши операторы, равно до любого из Response.Write запуска ASP.NET.

Обычно вы должны переопределить Render, RenderChildren или RenderControl, чтобы поместить ваши Response.Writes в, и обязательно вызывать надлежащие родительские методы, в противном случае видны только ваши операторы. В качестве альтернативы, поместите свой Response.Write внутри серверных тегов <% %> или воспользуйтесь предложением Naveed (который, между прочим, внутренне переводит в Response.Write, но гораздо яснее и проще для написания).

РЕДАКТИРОВАТЬ сводку расширенного чата ниже: причина была найдена в элементе управления Telerik RadAjax.Net2. После устранения проблемы проблема исчезла. Решено самим Андреасом.

...