2013-04-23 75 views
0

我目前有一個aspx頁面返回一個html表單(帶有圖像和css)。我想在不重寫所有代碼的情況下獲得此表單的下載Word可編輯版本。可能嗎 ?從aspx頁面下載Word可編輯文檔

一個例子:我有一個'WebForm2.aspx'這個頁面,裏面有一個簡單的內容。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" 
Inherits="WebApplication15.WebForm2" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <h1>Title</h1> 
     <asp:CheckBox runat="server" ID="myTest" Text="Doc 1" /><br /> 
     <asp:CheckBox runat="server" ID="myTest2" Text="Doc 2" /><br /> 
     <asp:CheckBox runat="server" ID="myTest3" Text="Doc 3" /><br /> 
     <asp:CheckBox runat="server" ID="myTest4" Text="Doc 4" /><br /> 
    </div> 
    </form> 
</body> 
</html> 

我想從另一頁,例如一個按鈕,讓你下載「WebForm2.aspx」的內容的可編輯的Word文件內。

我Page_PreRender方法

Response.AddHeader("Content-Type", "application/msword"); 

它的部分工作,添加此內容。如果我保存文件的CSS和圖像未加載,但如果我只打開可下載內容的CSS和圖像加載。

+1

在預渲染事件的代碼請出示一些源代碼...你嘗試過什麼?什麼不工作(異常/錯誤信息)? – Yahia 2013-04-23 09:29:58

回答

1

MS Word可以編輯html文檔,因此在頭文件中添加Content-Type = application/msword記錄會使瀏覽器在瀏覽器中打開頁面,遺憾的是沒有css和圖像。

添加以下你的頁面

Response.AddHeader("Content-Type", "application/msword"); 
+0

是的,它的工作,不幸的是我需要有CSS和圖像... – binard 2013-04-23 13:15:27

+0

當我只打開可下載的內容,而不是保存它,CSS和圖像加載。除了我還有其他問題,沒有什麼更好的了。在我的頁面中有chechbox,如果用戶檢查這個複選框的狀態不存在於word文檔中...你是一個想法嗎? – binard 2013-04-23 15:09:54

+0

這是因爲複選框不是aspx複選框,而只是html – binard 2013-04-23 15:25:01