加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC 4重定向回索引视图

发布时间:2020-12-16 09:38:02 所属栏目:asp.Net 来源:网络整理
导读:蝙蝠:我是使用asp.net mvc 4的新手. 我有一个动作,创建一个Excel文件,然后将其转换为PDF. 从视图 @Html.ActionLink("Generate Invoice","genInvoice",new { id = item.invoiceID }) | 行动: public ActionResult genInvoice(int id = 0) { var invoiceItem
蝙蝠:我是使用asp.net mvc 4的新手.

我有一个动作,创建一个Excel文件,然后将其转换为PDF.

从视图

@Html.ActionLink("Generate Invoice","genInvoice",new { id = item.invoiceID }) |

行动:

public ActionResult genInvoice(int id = 0)
    {
        var invoiceItems = from k in db.InvoiceItems
                           where k.invoiceID == id
                           select k;

        string invoiceClient = (from kk in db.Invoices
                                where kk.invoiceID == id
                                select kk.clientName).Single();


        invoiceClient = invoiceClient + "_" + DateTime.Now.ToString("ddd dd MMM yyyy hhTmm");
        string websitePath = Request.PhysicalApplicationPath;
        string pathName = websitePath + "" + invoiceClient ;
        generateInvoice(invoiceItems,pathName + ".xlsx",id);
        convertToPDF(pathName,invoiceClient);

//Response.AppendHeader("Content-Disposition","attachment");

          var viewModel = new InvoiceItemAdd();
          viewModel.Invoices = db.Invoices
              .Include(i => i.InvoiceItems)
              .OrderBy(i => i.invoiceID);
        return View("Index",viewModel);
        //return RedirectToAction("Index",viewModel);


    }

现在我想最终下载PDF文件,然后返回到索引视图.
它进入索引视图打印html等,但然后窗口保持为白色屏幕与url:/ Invoice / genInvoice / 1

知道我怎么能这样做吗? (生成PDF后返回索引视图,同时下载)

解决方法

对不起,我修复了白屏问题.在尝试进行PDF下载时

//Response.AppendHeader("Content-Disposition","inline; filename="+invoiceClient+".pdf");
            //Return File(output,"application/pdf");
            //Response.Flush();

            //Response.End();

Response.End()没有被注释掉,我想这就停止了.

现在的问题是如何在单独的选项卡中打开PDF并返回当前的索引
用上面的代码.

编辑:
决定文件可以下载.

public FileResult genInvoice(int id = 0)
{
//More code
Response.AppendHeader("Content-Disposition","attachment; filename="+pathName+".pdf");
return File(websitePath + "" + invoiceClient + ".pdf","application/pdf");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读