Rotativa ed eccezioni in view

di il
4 risposte

Rotativa ed eccezioni in view

Non so se qualcuno di voi ha mai usato Rotativa. E' un plugin nuget che permette di trasformare View MVC in pdf.

Ho questo problema: funziona tutto bene, ma nei casi in cui la pagina va in eccezione, mi stampa un pdf con l'eccezione stessa. Io vorrei intercettarla prima ed evitare che mi venga creato il pdf.

Avete idea di come fare?

Vi aggiungo un estratto del codice

Controller


        public static ActionResult generaPdf(long idRichiesta)
        {
                return new ActionAsPdf("Richiesta", new { idRichiesta = idRichiesta }) { FileName = "Richiesta.pdf" };
            }
            
            
        public ActionResult Richiesta(long idRichiesta)
        {
            var richiesta = RichiestaDataManager.Instance.getRichiesta(idRichiesta, true);
            return View(richiesta);
        }

4 Risposte

  • Re: Rotativa ed eccezioni in view

    Penso che, nella prima ActionResult, dovresti aggiungere una riga che controlla gli errori (prima del return), oppure nel model dovresti usare gli attributi "DataAnnotations" per controllare i dati immessi nell'input della view, e qua nel controller mettere un "if (ModelState.IsValid)...".
    Se c'è l'errore, l'Action deve terminare con: return view(richiesta).
  • Re: Rotativa ed eccezioni in view

    Grazie per la risposta .

    Non ho usato le dataAnnotatios (se non in parte) perché il software su cui sto lavorando è fatto con una serie di form a tab che condividono un unico "grosso" model. Il problema è che se uso quel genere di controlli e dico che, per esempio, un certo campo è required, poi non posso riempire i tab dove quel valore ancora non è utilizzato.

    Sicuramente ho sbagliato qualcosa a livello di progettazione d'insieme, o ha sbagliato chi aveva iniziato quel software prima di me

    Purtroppo è la prima volta che uso MVC e sono andato un po' a tentativo seguendo lo stile di chi aveva iniziato a lavorare su questo software... ma potrei avere incasinato io tutto :S

    A posteriori direi che forse l'errore principale è stato salvare i contenuti dei tab ad ogni step. Tenendo tutto nel model probabilmente avrei potuto usare meglio le dataAnnotation
  • Re: Rotativa ed eccezioni in view

    Però, se tu sai quali sono le cause che generano l'eccezione, potresti mettere dei controlli nella prima Action (public static ActionResult generaPdf(long idRichiesta)) che viene eseguita di ritorno dalla view, e in caso di errore farla terminare con un return view(richiesta), invece di farle generare il pdf con quel return new ActionAsPdf("Richiesta"...
  • Re: Rotativa ed eccezioni in view

    Si, infatti, mi sembra la soluzione migliore a questo punto. Non mi piaceva l'idea perchè è difficile essere sicuri di coprire tutte le cause possibili di errore, ma dovrebbe essere una buona soluzione.
    Grazie per l'aiuto
Devi accedere o registrarti per scrivere nel forum
4 risposte