私のアプリケーションでWord文書を開きたい場合は、レスポンスを使用しています。ユーザーがファイルを保存することを選択した場合、ファイルを保存し、ファイルを開いたときの状態をファイルに表示します。ユーザーがすぐにファイルを開くことを選択した場合、IEがファイルを開くことができないというエラーが表示されます。 「再試行」を選択すると、ファイルが見つからないというエラーがMS Wordに表示されます。以下は私の状況を示すスクリーンショットです。ここでIE9で '開く'を選択すると、Asp.Netダウンロードファイルのエラーが発生する
this.Context.Response.Clear();
this.Context.Response.ClearContent();
this.Context.Response.ClearHeaders();
this.Context.Response.BufferOutput = true;
this.Context.Response.ContentType = "application/msword";
this.Context.Response.AppendHeader("Content-Length", bytes.Length.ToString());
this.Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + "Test Document.doc");
this.Context.Response.BinaryWrite(bytes);
this.Context.ApplicationInstance.CompleteRequest();
ダウンロードのユーザー促す画面されています:また、ここで私は、ファイルを表示しなければならないコードがある。ここ
は、ユーザー後の画面が選択されて「開く」
ユーザーが「再試行」を選択した後の画面です。この画面はMS Word用です。
protected void GenerateMsWordDoc()
{
string strBody = "<html>" +
"<body>" +
"<div>Your name is: <b>Billy Bob</b></div>" +
"<table width='100%' style='background-color:#cfcfcf;'><tr><td>1st Cell body data</td><td>2nd cell body data</td></tr></table>" +
"Ms Word document generated successfully." +
"</body>" +
"</html>";
string fileName = "MsWordSample.doc";
// You can add whatever you want to add as the HTML and it will be generated as Ms Word docs
Response.AppendHeader("Content-Type", "application/msword");
Response.AppendHeader ("Content-disposition", "attachment; filename="+ fileName);
Response.Write(strBody);
}
どのバージョンのWordが使用されていますか? – Mike
Microsoft Word 2007 –
Styles/Site.cssはサイトのCSSですか?もしそうなら、クライアント側でResponse HeaderとContentをチェックして、EndRequest中にレスポンスに何も追加されていないかどうか確認しましたか? – jbl