有没有更好的方法将文件发送到asp.net中的客户端?

时间:2019-04-15 09:35:14

标签: c# asp.net asp.net-mvc-4

我需要将文件发送到客户端以使用javscript下载,我发现可以通过以下方式进行操作:

Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename="myflie.txt");
Response.ContentType = "text/plain";
Response.Flush();
Response.TransmitFile(filePath);
Response.End();

但是我无法获取文件名,因为它似乎返回了原始文件,并且调用getResponseHeader无效。我也无法下载文件本身,因为错误Resource 'blob: …' not allowed to load。另外,除了文件名之外,我还想将其他一些参数作为JSON传递,而我无法使用此方法来实现。我是asp.net的初学者,所以我希望我足够清楚。

1 个答案:

答案 0 :(得分:0)

您已将其标记为使用MVC,如果您确实不想直接与Response搞混...您可以使用File()方法:

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controller.file?view=aspnet-mvc-5.2

或查看其中一些替代方法以允许更改某些元数据:

Returning a file to View/Download in ASP.NET MVC

如果您要下载文件发送json,则将需要使用multipart,尽管我会避免这样做,而是设置两个不同的操作,因为这种方式更兼容