"发送HTTP标头后无法重定向"打开文件时

时间:2017-04-10 15:10:39

标签: c# asp.net-mvc redirect

我有一些代码用于在我的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#中是否可以这样?

由于

0 个答案:

没有答案