我有一個下載一個動態生成文件的控制器操作:重定向/顯示視圖dowloaded
public ActionResult DownloadFile()
{
var obj = new MyClass { MyString = "Hello", MyBool = true };
var ser = new XmlSerializer(typeof(MyClass));
var stream = new MemoryStream();
ser.Serialize(stream, obj);
stream.Position = 0;
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=myfile.xml");
Response.ContentType = "application/xml";
// Write all my data
stream.WriteTo(Response.OutputStream);
Response.End();
return Content("Downloaded");
}
僅供參考:
public class MyClass
{
public string MyString { get; set; }
public int MyInt { get; set; }
}
這是工作,和文件(myfile.xml)被下載。
然而,消息「下載」不發送給瀏覽器。
同樣,如果我更換return Content("Downloaded");
爲return Redirect("www.something.com");
然後在瀏覽器的文件下載之前重定向。
帶有一點前導碼,用戶的旅程:
- 用戶填寫表單上
- 表單提交 產生
- XML以前的觀點,並下載
- 用戶是重定向/「已下載」視圖顯示爲(因此按F5將不會重新發布表單)