如何在ASP.NETMVC3中将标头添加到HTTPContext响应?我的页面中有一个下载链接,这是我根据用户请求生成的文件。现在我想显示文件大小,以便浏览器可以显示剩余的下载量。作为解决方案,我认为向请求添加一个Header会起作用,但现在我不知道该怎么做。这是我的尝试代码:publicFileStreamResultDownloadSignalRecord(longid,longpowerPlantID,longgeneratingUnitID){varfile=sr.GetRecordFile(powerPlantID,generatingUnitID,id);流stream=newMemoryStream(文件);HttpContext.Response.AddHeader("内容长度",file.Length.ToString());返回文件(流,“二进制/RFX”,sr.GetRecordName(powerPlantID,generatingUnitID,id)+“.rfx”);当我检查fiddler时,它不显示Content-Length标头。你们能帮帮我吗?试试HttpContext.Current.Response.AppendHeader("Content-Length",contentLength);尝试使用HttpContext.Response.Headers.add("Content-Length",file.Length.ToString());你可以试试下面的代码看看是否有效?publicFileStreamResultIndex(){HttpContext.Response.AddHeader("test","val");varfile=System.IO.File.Open(Server.MapPath("~/Web.config"),FileMode.Open);HttpContext.Response.AddHeader("内容长度",file.Length.ToString());返回文件(文件,“文本”,“Web.config”);}“它在我的机器上工作”我试过如果没有Content-length标头,Fiddler无论如何都会报告Content-length标头。我不认为这是必要的。这应该可以修复它,因为我认为没有必要使用FileStreamResult,直接使用byte[]。publicFileContentResultDownloadSignalRecord(longid,longpowerPlantID,longgeneratingUnitID){SignalRepositorysr=newSignalRepository();varfile=sr.GetRecordFile(powerPlantID,generatingUnitID,id);HttpContext.Response.AddHeader("Content-Length",Length.ToString());返回文件(文件,“二进制/RFX”,sr.GetRecordName(powerPlantID,generatingUnitID,id)+“.rfx”);}请注意FileContentResult返回类型。不确定那里还有什么问题,但内容长度应该是二进制文件的大小,而不是字符串长度。以上就是C#学习教程:HowtoaddheaderstotheHTTPContextresponseinASP.NETMVC3?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
