Return 如果成功则为 FileStreamResult,如果不成功则为 View
Return a FileStreamResult if successful or View if unsuccessful
在 MVC 中,如果我的查询成功,是否有办法 return 一个 FileStreamResult,但如果不成功,只是 return ViewBag 中有错误的视图。像这样....
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");
}
我知道这行不通,但基本上,如果数据拉取成功,我想打开一个结果文件...如果不成功,我想显示该页面,或重定向到另一个页面向用户显示结果失败。也欢迎任何关于更好方法的建议。谢谢!
ViewResult
(由 View
方法 return 编辑的类型)和 FileStreamResult
都派生自 ActionResult
class , 它代表一个动作方法的结果,所以你必须 return 它的实例来自 Submit
.
public ActionResult Submit()
在 MVC 中,如果我的查询成功,是否有办法 return 一个 FileStreamResult,但如果不成功,只是 return ViewBag 中有错误的视图。像这样....
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");
}
我知道这行不通,但基本上,如果数据拉取成功,我想打开一个结果文件...如果不成功,我想显示该页面,或重定向到另一个页面向用户显示结果失败。也欢迎任何关于更好方法的建议。谢谢!
ViewResult
(由 View
方法 return 编辑的类型)和 FileStreamResult
都派生自 ActionResult
class , 它代表一个动作方法的结果,所以你必须 return 它的实例来自 Submit
.
public ActionResult Submit()