2012-08-27 8 views
5

Ich habe einen WebAPI-Controller, der einige Dateien abhängig von der Anfrage herunterladen muss, aber wenn es um reine Textdateien geht, gibt es mir nicht die Downloadanforderung des Browsers. Es gibt mir nur die Klartext-Antwort, als wäre es JSON (in meinem Fall ist es ein JSONP WebAPI).ASP.NET Web API Herunterladen von Text

Ich habe überprüft andere Q & A aus dem Stapel (und anderen Seiten), aber ich habe noch nichts:

Hier geht es meine aktuellen Code:

var httpResponse = new HttpResponseMessage(HttpStatusCode.OK); 
httpResponse.Content = new StreamContent(new MemoryStream(Encoding.UTF8.GetBytes(content))); 
httpResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 
httpResponse.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); 
httpResponse.Content.Headers.ContentDisposition.FileName = "speedcam.txt"; 
return httpResponse; 

Und das ist Chrome Antwort:

Cache-Control: no-cache

Content-Disposition: attachment; filename = speedcam.txt

Content-Length: 17462

Content-Type: application/octet-stream

Datum: Mo, 27. August 2012 04.53.23 GMT

Gültig bis: -1

Pragma: no-cache

Server: Microsoft-IIS/8.0

X-ASPNET-Version: 4.0.30319

X-Powered-By: ASP.NET

X-Quelldateien: = UTF-8 B TTpcVHJhYmFsaG9cTWFwYVJhZGFyXE1hcGFSYWRhci5XZWJBUEk0XEV4cG9ydGE =?

scheint in Ordnung, aber der gesamte Datei Text ist in den Chrome Dev Tool "Response-Tab" ..

Antwort

0

Ihr Code die Datei als eine Anwendung zu verhalten zwingt, unabhängig von dem Textinhalt;

httpResponse.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 
+0

Ich weiß ... Ich habe versucht, 'text/plain',' text/txt' und andere, und immer noch nichts! –