2013-10-08 1 views
1

Теперь ... Я мог бы сделать это отдельная страница, но я не хочу!Очистка ответа в Postback для загрузки текстового файла с кнопки Нажмите

Я пытаюсь создать службу, которая извлекает загрузку JS-файлов, необходимых для проекта, сжимает их и загружает один файл, но то, что он делает, на самом деле не проблема, бит загрузки не ведет себя так, как ожидалось ,

Из многих примеров на здесь, в том числе: In ASP.NET, how to get the browser to download string content into a file? (C#)

У меня есть (упрощенный) код:

Sub Download() Handles button.click 
    var AllTheScript as string ="blah blah blah" 
    Response.Buffer = True 
    Response.Clear() 
    Response.ClearContent() 
    Response.Write(AllTheScript) 
    Response.ContentType = "application/text" 
    Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js") 
    Response.Flush() 
End Sub 

Очевидно, что у меня также есть <asp:button id="button" runat="server"/> элемент в моей странице.

При нажатии на эту кнопку, он все выборки работы (не показано выше) создает текстовый файл и загружает его ... отличный ...

Кроме этого, в нижней части JS файл скачивает myJavascript.js у него есть все разметки со страницы, на которой была кнопка.

У меня создалось впечатление, что Response.ClearContent() должен удалить все это?

Что я делаю неправильно? Или это должна быть отдельная страница?

ответ

1

Если кто-то еще сталкивается с этой проблемой снова, я решил проблему, очень просто!

Все это нужно было

Response.End() 

В конце!

Так полная функция становится:

Sub Download() Handles button.click 
    var AllTheScript as string ="blah blah blah" 
    Response.Buffer = True 
    Response.Clear() 
    Response.ClearContent() 
    Response.Write(AllTheScript) 
    Response.ContentType = "application/text" 
    Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js") 
    Response.Flush() 
    Response.End() '///<<< Final Line Essential! 
End Sub 
0

Попробуйте

var context = HttpContext.Current; 

context.Response.Clear();

context.Response.ClearHeaders();

context.Response.ClearContent(); ////

context.Response.AddHeader ("content-disposition", "attachment; filename = myJavascript.js");

content.Response.Write (AllTheScript);

+0

Тот же результат я боюсь :-( –

 Смежные вопросы

  • Нет связанных вопросов^_^