ASP.NET客户端将服务器端docx文件流式传输到Word 2007

ASP.NET客户端将服务器端docx文件流式传输到Word 2007,asp.net,ms-word,docx,Asp.net,Ms Word,Docx,基本问题是,如何单击asp.net网页上的某个按钮,并且该按钮应显示“下载文件”框,并使用Microsoft Word 2007打开或保存 我正在使用OpenXMLSDK2.0,通过单击按钮,可以从模板创建(服务器端)docx文档,添加自定义xml以填充内容控件并创建新的Word docx文档。但是,我的问题是,然后尝试在http响应对象中发送文档内容,该对象会将该内容识别为Word 2007文档,并使用适当的mime类型询问用户是否希望使用Word 2007打开文件(他们已安装在机器上)。无论

基本问题是,如何单击asp.net网页上的某个按钮,并且该按钮应显示“下载文件”框,并使用Microsoft Word 2007打开或保存

我正在使用OpenXMLSDK2.0,通过单击按钮,可以从模板创建(服务器端)docx文档,添加自定义xml以填充内容控件并创建新的Word docx文档。但是,我的问题是,然后尝试在http响应对象中发送文档内容,该对象会将该内容识别为Word 2007文档,并使用适当的mime类型询问用户是否希望使用Word 2007打开文件(他们已安装在机器上)。无论我尝试哪个选项(到目前为止大约有十几个),我都会得到一个“错误解析接近”PK..或一个错误解析接近” 我已经在OpenXML Developer.org网站、Eric White的博客、MSDN文章等上读到了几乎所有的在线内容,但在将文档内容发送到客户机时,这些内容似乎都不起作用。我不想在浏览器中打开文档,只需给用户在Word 2007中打开文档(供进一步编辑)的选项即可

我了解Word2007文件结构的大部分内容,并意识到上面的错误与试图解析docx或xml的明显zip文件有关(我尝试了Response.ContentType的各种排列)。在我看来,服务器端文档生成的“困难”部分已经完成,但将内容发送到客户端的简单部分却让我难以理解


我希望成功做到这一点的人能够提供帮助。

您尝试过哪些内容类型?正确的版本是您在HKCU\.docx注册表中的版本,即
application/vnd.openxmlformats officedocument.wordprocessingml.document
。您是否尝试过将文档保存到磁盘并从那里打开它?如果您在生成时直接保存它,并且它打开正常,则可能是内容类型或传输有问题,即您没有正确发送二进制数据;如果你从浏览器中保存它并打开它,那么它可能是内容类型错误。谢谢你的评论,但是我在额外搜索后发现了问题。页面上有一个AJAX UpdatePanel,尽管它位于页面的不同部分,但当我试图直接写入响应对象时,它被破坏了。正如Eilon Liptons博客中关于PageRequestManagerParserErrorException的解释,修复方法是向UpdatePanel添加一个PostBackTrigger,并将其ControlID设置为负责创建和下载文档的按钮。