.net C语言中的内容配置问题#
我正在根据用户选择设置.net C语言中的内容配置问题#,.net,asp.net,asp.net-mvc,asp.net-mvc-2,.net,Asp.net,Asp.net Mvc,Asp.net Mvc 2,我正在根据用户选择设置内联或附件的配置。它的工作,但非常间歇性。在同一浏览器中为同一文件选择“内联”后,它将按预期工作。一旦切换到附件,除非关闭并重新打开浏览器,否则无法获得所需的结果。我确实刷新了上下文并将其清除 以下是我正在使用的代码: public void GetResult(ControllerContext context) { context.HttpContext.Response.Buffer = true; context.Ht
内联
或附件
的配置。它的工作,但非常间歇性。在同一浏览器中为同一文件选择“内联”后,它将按预期工作。一旦切换到附件,除非关闭并重新打开浏览器,否则无法获得所需的结果。我确实刷新了上下文并将其清除
以下是我正在使用的代码:
public void GetResult(ControllerContext context)
{
context.HttpContext.Response.Buffer = true;
context.HttpContext.Response.Clear();
context.HttpContext.Response.ContentType = ContentType;
ContentDisposition disposition = new ContentDisposition();
disposition.FileName = FileName;
disposition.Inline = this.ContentDispositionType == ContentDispositionType.Inline ? true : false;
context.HttpContext.Response.AddHeader("content-disposition", disposition.ToString());
context.HttpContext.Response.WriteFile(context.HttpContext.Server.MapPath(Path));
context.HttpContext.Response.Flush();
context.HttpContext.Response.End();
}
您可能会发现,这是因为浏览器正在缓存响应,您可能需要调整该特定操作的缓存。这听起来像是浏览器缓存问题。尝试添加以下内容:
Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0));
Response.Expires = 0;
Response.CacheControl = "no-cache";
谢谢,这似乎有效,不过我还需要进一步测试。此外,为什么有些文件即使被指定为内联文件,也总是作为附件呈现?如果浏览器不知道内容类型,因此不知道要运行哪个应用程序,那么它将作为下载附件