Полагаю, вы пытаетесь передать данные в strDocBody
в виде файла Word пользователю.Для этого эти данные должны быть единственной вещью, которую веб-сервер передает браузеру.Вот почему он отлично работает, когда вы помещаете его в обработчик событий OnLoad
.Это не тот случай, когда вы помещаете его в обработчик нажатия кнопки.
Если вы хотите, чтобы такое поведение происходило при нажатии кнопки, эта кнопка должна перенаправить пользователя на другой URL-адрес, который отправит данные документа, и ничего больше.
Создайте страницу специально для обслуживания документа, пусть она будет Document.aspx .Теперь я не знаю, нужно ли вам выполнять какую-либо дополнительную логику при нажатии кнопки.Если нет, вы можете просто использовать LinkButton:
<asp:LinkButton runat="server" ID="docLink" Text="Document"
PostBackUrl="Document.aspx" />
В противном случае просто добавьте перенаправление вызова в свой обработчик onClick:
protected void btnButton1_Click(object sender, EventArgs e)
{
// ....
Response.Redirect("Document.aspx");
}