斐伊川 我使用的是asp.net MVC1.0。我想通过我使用函数的代码创建Ms word文档:
public ActionResult GetPostOffline(string PostId)
{
Post post = new Post();
post = PostBLL.PostDetails(new Guid(PostId.Replace("'","")));
string strBody = post.Title +post.Body;
string filename = post.Title + ".doc";
Response.ContentType = "application/word";
Response.AppendHeader("Content-disposition", "attachment; filename=" + filename);
Response.Write(strBody);
return View("~/Views/Posts/AllPosts.aspx");
}
正确打开word文档,但在该文档中没有显示正确的内容。而不是显示内容它显示我的网站的HTML ..我该怎么办...请帮助我
答案 0 :(得分:0)
试试这样:
public ActionResult GetPostOffline(string postId)
{
Post post = new Post();
post = PostBLL.PostDetails(new Guid(PostId.Replace("'","")));
string strBody = post.Title + post.Body;
string filename = post.Title + ".txt";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
return File(Encoding.UTF8.GetBytes(strBody), "text/plain");
}
我已将内容类型从application/word
修改为text/plain
,因为您拥有的是一个简单的sting变量(strBody
),而不是实际的Word文档。要创建MSWord文档,您需要一些库。
答案 1 :(得分:0)
我相信有一个更简单的解决方案。从您的问题来看,您似乎希望文件以单词形式打开,即使它只是纯文本。这是我的解决方案:
{
Post post = new Post();
post = PostBLL.PostDetails(new Guid(PostId.Replace("'","")));
string strBody = "<body>" + post.Title + System.Environment.NewLine + post.Body + "</body>";
string filename = post.Title + ".doc";
return File(Encoding.UTF8.GetBytes(strBody), "application/word", filename);
}
我在标题和正文之间添加了System.Environment.NewLine。不确定是否有必要。