2010-07-07 63 views
0

我正在根據用戶選擇來設置inlineattachment的處置方式。它工作但非常間歇。一旦我在同一個瀏覽器中選擇內嵌相同的文件,它就會按預期工作。一旦我切換到附件,除非關閉並重新打開瀏覽器,否則我無法獲得所需的結果。我確實清楚了上下文並且清除了它。C#中的內容處置問題

下面是我使用的代碼:

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(); 
    } 

回答

0

它聽起來像是一個瀏覽器緩存問題。嘗試添加此:

Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0)); 
Response.Expires = 0; 
Response.CacheControl = "no-cache"; 
+0

謝謝,這似乎工作,雖然我必須進一步測試。另外,爲什麼有些文件總是作爲附件呈現,即使它們被指定爲內聯? – DotnetDude 2010-07-07 17:29:33

+0

如果瀏覽器不知道內容類型,因此不知道運行哪個應用程序將是一個附件下載 – 2010-07-07 17:45:46

0

你可能會發現,這是因爲瀏覽器緩存響應,你可能需要調整在那個特定的行動緩存