我有一些代码用于在我的MVC网站上打开文档。代码似乎工作正常,文档正在打开,但是在后台发生错误说"在HTTP标头发送后无法重定向"。我正在使用的代码如下,基本上我正在做的是提交页面,其中某个命令作为变量传递,然后重定向回同一页面:
public ActionResult List(string command, string document, int id = 0)
{
if (id > 0)
{
ViewData["id"] = id;
}
if (command == "documentOpen")
{
DocumentOpen(document);
return RedirectToAction("Edit", "Fault", new { id });
}
else if (command == "documentDelete")
{
DocumentDelete(document);
return RedirectToAction("Edit", "Fault", new { id });
}
else
{
IEnumerable<Fault.Document> results = _DocumentRepository.GetDocumentList(Convert.ToInt32(ViewData["id"]));
return PartialView("List", results);
}
}
private void DocumentOpen(string document)
{
var fileinfo = new FileInfo(Server.MapPath(Path.Combine("~/", document)));
Response.Clear();
Response.AddHeader("Content-Disposition", "filename=" + fileinfo.Name);
Response.AddHeader("Content-Length", fileinfo.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(fileinfo.FullName);
Response.Flush();
}
private void DocumentDelete(string documentId)
{
//Read document from the server
var document = _ITFaultDocumentRepository.GetFaultDocument(Convert.ToInt32(documentId), null);
//Delete the physical file
System.IO.File.Delete(Server.MapPath(Path.Combine("../", document.doc_name)));
//Delete record in database
_DocumentRepository.DeleteFaultDocument(document.doc_id);
}
我已经做了一些环顾四周,我认为错误正在发生,因为我在打开文档后重定向页面,但我还没有找到办法解决此问题。然而。如果可能的话我想在新的标签/窗口中打开文档,C#中是否可以这样?
由于