3

在 MVC 中,如果我的查询成功,是否有办法返回 FileStreamResult,但如果没有,只需在 ViewBag 中返回带有错误的 View。像这样......

    public FileStreamResult Submit()
    {
        string retVal;
        try
        {
            DataSet ds = new DataSet();

            ds = getDS();
            if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                ExcelXmlWorkbook book = ExcelXmlWorkbook.DataSetToWorkbook(ds);
                string fileName = "results.xml";
                book.Export(fileName, ExportFormat.Xml, 0);
                FileInfo info = new FileInfo(fileName);
                return File(info.OpenRead(), "application/x-msexcel");
            }
            else
            {
                retVal = "No Data";
            }

        }
        catch (Exception ex)
        {
            retVal = ex.Message;
        }

        ViewBag.Result = retVal;

        return View("ViewName");
    }

我知道这不起作用,但基本上,如果数据提取成功,我想打开一个结果文件......如果不是,我想显示页面,或重定向到不同的页面以向用户显示结果失败了。也欢迎任何关于更好方法的建议。谢谢!

4

1 回答 1

4

两者ViewResult(这是View方法返回的类型)和FileStreamResult派生自ActionResult类,它表示操作方法的结果,因此您必须从Submit.

public ActionResult Submit()
于 2016-06-20T20:02:04.567 回答