In WebForms, io normalmente si sarebbero codice come questo per permettere al browser presentare una "Download file" popup con un tipo di file arbitrario, come un PDF, e un nome di file:Come posso presentare un file per il download da un controller MVC?
Response.Clear()
Response.ClearHeaders()
''# Send the file to the output stream
Response.Buffer = True
Response.AddHeader("Content-Length", pdfData.Length.ToString())
Response.AddHeader("Content-Disposition", "attachment; filename= " & Server.HtmlEncode(filename))
''# Set the output stream to the correct content type (PDF).
Response.ContentType = "application/pdf"
''# Output the file
Response.BinaryWrite(pdfData)
''# Flushing the Response to display the serialized data
''# to the client browser.
Response.Flush()
Response.End()
Come faccio a ottenere lo stesso attività in ASP.NET MVC?
Questo è un grande esempio del perché ASP.NET MVC impressionante. Quello che prima dovevi fare in 9 righe di codice dall'aspetto confuso può essere fatto in una riga. Molto più facile! –
Grazie a tvanfosson, ho cercato la soluzione migliore per farlo, e questo è fantastico. –
Ciò richiede un'estensione di file sul nome del file o altrimenti ignorerà completamente il nome file e il tipo di contenuto e semplicemente cercherà di inviare il file al browser. Inoltre, utilizzerà il nome della pagina Web solo se il browser non riconosce il tipo di contenuto (ovvero octet-stream) quando impone il download e non avrà un'estensione. – EdenMachine