Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net C语言中的内容配置问题#_.net_Asp.net_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

.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";

谢谢,这似乎有效,不过我还需要进一步测试。此外,为什么有些文件即使被指定为内联文件,也总是作为附件呈现?如果浏览器不知道内容类型,因此不知道要运行哪个应用程序,那么它将作为下载附件