在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");
}
我知道这不起作用,但基本上,我想打开一个结果文件,如果数据拉动成功...如果不是,我想显示页面,或重定向到另一个页面显示结果失败的用户。任何有关更好方法的建议也受到欢迎。谢谢!
答案 0 :(得分:4)
ViewResult
(View
方法返回的类型)和FileStreamResult
都来自ActionResult
类,它代表了一个动作方法的结果,所以你必须从Submit
返回它的实例。
public ActionResult Submit()