20

これは単純なものかもしれませんが、次のようになります。

MVC3 アプリケーションに Excel のダウンロード可能なレポートを実装しています。過去にこの方法を使用したことがあり、完全に機能していましたが、この場合、レポートの売上データが存在しない可能性があります。これが私のコードです:

Reports コントローラー内に FileResult アクションがあります。

    [HttpPost]
    public FileResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
    {
        ReportEngine re = new ReportEngine();

        Stream report = re.GetReport(reportRequest);

        return new FileStreamResult(report, "application/ms-excel")
        {
            FileDownloadName = "SalesReport.xls"
        };
    }

私の問題は、レポート ストリームが null の場合があることです。これは、利用可能な販売情報がないことを意味します。その場合、利用可能な販売情報がないことを示すメッセージを表示するビューにリダイレクトしたいと思いますが、達成する方法がわかりませんこれ。

これを行う方法はありますか?

4

1 に答える 1

32

まあ、FileResultから継承しActionResultます:

結果がRedirectToRouteResult(から継承ActionResult) または のいずれかになる場合、アクションは両方を管理できるFileResultタイプでなければなりません。ActionResult

そんな感じ :

    [HttpPost]
    public ActionResult ExcelReportDownload(ReportExcelDownloadRequest reportRequest)
    {
        ReportEngine re = new ReportEngine();

        Stream report = re.GetReport(reportRequest);
        if (report == null)
           return RedirectToAction(<action Name>);
        else
           return new FileStreamResult(report, "application/ms-excel")
           {
               FileDownloadName = "SalesReport.xls"
           };
    }
于 2012-07-11T14:04:51.727 に答える