Inquiridor
Try...Catch no MVC

Pergunta
-
Olá pessoal!
Estou com uma dúvida bem básica:Tenho um sistema que gera arquivos PDFs a partir de um formulário da WEB.
A criação dos arquivos PDF está sendo feita na camada Model. Estou usando o Controller para receber os dados da View e chamar a rotina de criação na Model.
A minha dúvida é a seguinte:
Caso aconteça algum erro durante a criação do PDF, eu o pegarei utilizando um TRY...CATCH.No meu Controller, eu coloquei uma ActionResult que redireciona para uma página de erro com a msg de erro capturada.
Minha dúvida é: Como chamar esse ActionResult a partir da instrução Catch q está na minha Model?
Todas as Respostas
-
pjsantiago89,
Vale chute? Coloque dentro do catch algo assim:
=================================================================
How to call an ActionResult from another ActionResult in asp.net
RedirectToAction("display", "controlername", new { id = 1 }); // ou return RedirectToAction("display", new { id = 1 });
https://stackoverflow.com/questions/19829926/how-to-call-an-actionresult-from-another-actionresult-in-asp-net
=================================================================
Veja também:
=================================================================
Exception Handling In ASP.NET MVC
https://www.c-sharpcorner.com/article/exception-handling-in-asp-net-mvc/
=================================================================
calling an MVC controller from c# class
https://forums.asp.net/t/2036738.aspx?calling+an+MVC+controller+from+c+class
=================================================================
C# Choose a return method ActionResult
https://www.codeproject.com/questions/1056854/csharp-choose-a-return-method-actionresult
=================================================================
[]'s,
Fabio I. -
Olá, Fabio!
Muito obrigado pela resposta.Infelizmente o RedirectToAction não funcionou. Dei uma lida nos artigos para ir tirando umas idéias.
Só funcionou qdo eu coloquei o TRY...CATCH na camada Controller, na instrução que chama o comando de criação (que fica na Model).
try
{
CC.CriandoArquivo(Dados);
return RedirectToAction("CriarPDF");
}
catch (Exception e)
{
ViewBag.Message = e.Message;
return View("Error");
}Obrigado!!!! =D
-