从模型而不是控制器导出到Excel

时间:2016-07-20 15:55:50

标签: c# model-view-controller

我使用以下命令从Controller导出到MVC应用程序中的excel。为此,我必须在Controller中使用一些业务逻辑和数据对象。我的出口有效,但我认为我不应该在控制器中这样做。我是MVC的新手。是否有更好的方法将此逻辑移至模型并将其从Controller中移出?

public void ExportToExcel(PortalAccountMappingModel model)

    {
        var data = model.GetExport();
        var excelReport = new ExcelReportGenerator(Configurations.ReportTemplatesFolder);
        using (ExcelReportData reportData = excelReport.GenerateReport(ExcelReportDataOutputType.StreamData, Constants.PORTAL_ACCOUNT_MAPPING_REPORT_NAME, typeof(PortalAccountMappingReportItem), data))
        {
            byte[] reportByteArray = reportData.DataStream.ToArray();
            Response.Clear();
            Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", reportData.FileName));
            Response.AddHeader("Content-Length", reportByteArray.Length.ToString());
            Response.ContentType = "application/octet-stream";
            Response.BinaryWrite(reportByteArray);
        }
    }

0 个答案:

没有答案