Trong WebForms, tôi sẽ thường có mã như thế này để cho trình duyệt trình bày một "Download File" cửa sổ bật lên với một kiểu tập tin tùy ý, giống như một PDF, và một tên tập tin:Tôi làm cách nào để trình bày tệp để tải xuống từ bộ điều khiển 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()
Làm thế nào để thực hiện như nhau nhiệm vụ trong ASP.NET MVC?
Đây là một ví dụ tuyệt vời về lý do tại sao ASP.NET MVC tuyệt vời. Những gì bạn đã làm trước đây trong 9 dòng mã tìm kiếm khó hiểu có thể được thực hiện trong một dòng. Dễ dàng hơn nhiều! –
Cảm ơn tvanfosson, tôi đã tìm kiếm giải pháp tốt nhất để làm điều này, và điều này thật tuyệt. –
Điều này đòi hỏi một phần mở rộng tập tin trên tên tập tin hoặc nếu không nó sẽ hoàn toàn bỏ qua tên tập tin và contenttype và chỉ cố gắng để dòng tập tin vào trình duyệt. Nó cũng sẽ chỉ sử dụng tên trang web nếu trình duyệt không nhận dạng được contenttype (tức là octet-stream) khi nó buộc tải xuống và nó sẽ không có phần mở rộng nào cả. – EdenMachine