Итак, я хочу добавить ссылку на веб-страницу, которая при щелчке вызовет универсальный обработчик, который создаст необходимые данные в памяти и предоставит их пользователю в виде потока некоторого вида., которому затем предлагается сохранить его как файл.
ТАК, у нас может быть: Clickety
, а функция JavaSctipt makeme () просто
function makeme() {
$.ajax({
url: 'makefile.ashx',
cache: false
}).done(function (response) {
//alert(repsonse)
});
}
В обработчике я пробовал:
Dim rtn As String = "1,2,3,4,5"
Dim bArray As Byte() = System.Text.Encoding.Default.GetBytes(rtn.ToCharArray())
' or Dim mstream As New MemoryStream(bArray) ‘ alt (see below)
' either of the next two lines
context.Response.ContentType = "application/octet-stream"
context.Response.ContentType = "application/force-download"
context.Response.AddHeader("Content-Length", bArray.Length.ToString())
context.Response.AddHeader("Content-Disposition", "filename.csv")
context.Response.BinaryWrite(bArray)
' or context.Response.Write(mstream) ‘ if alt used above
Кажется, ничего не происходит ....
еще проще, это:
Dim rtn As String = "1,2,3,4,5"
context.Response.Clear()
context.Response.ContentType = "text/csv"
context.Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv")
context.Response.Write(rtn)
такжехотя при нажатии на ссылку ничего не происходит - я имею в виду, что обработчик вызывается, но это все.