Dans MVC, existe-t-il un moyen de renvoyer un FileStreamResult si ma requête aboutit, mais si ce n'est pas le cas, retournez simplement la View avec une erreur dans ViewBag. Comme si ....Renvoyer un FileStreamResult en cas de succès ou Afficher en cas d'échec
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");
}
Je sais que cela ne fonctionne pas, mais au fond, je veux ouvrir un fichier de résultats si la traction de données a réussi ... si ce n'était pas, je veux afficher la ou rediriger vers une autre page pour montrer à l'utilisateur que les résultats ont échoué. Toute suggestion sur une meilleure façon est également la bienvenue. Merci!
@Dom Merci de nous le signaler. J'ai modifié mon message. En fait, j'ai fait une erreur, parce que j'ai écrit que 'View' dérive de' ActionResult', mais 'View' est une méthode, bien sûr :-) – Kapol
Merci pour la réponse rapide! Ceci est exactement ce que je cherchais. J'ai été victime de "la réponse est si simple ce n'est pas" ... Merci encore! – Zach
@Zach Je suis heureux d'avoir aidé, acclamations. – Kapol