DanBlog

Il blog di Daniele Armanasco
posts - 48, comments - 73, trackbacks - 10

ASP.NET MVC - RedirectToAction

Nel mio primo progettino con ASP.NET MVC mi si è presentata l’esigenza di dover presentare la stessa view in due modalità diverse (diverso titolo, una con link di modifica e l’altra no, ecc.).

Ingenuamente, siccome la prima modalità (link tipo Controller/List) esisteva già, ho pensato di usare una Action di questo tipo:

        public ActionResult ViewList()

        {

            TempData["mode"] = "readonly";

            return RedirectToAction("List");

        }

delegando così tutto il lavoro di preparazione dei dati alla Action già in opera; nella pagina ho poi usato un paio di if (e si, mi capita ancora di usarli ;-)) per generare o meno i link per l’editing e per impostare il titolo.

Problema (di cui non mi sono accorto subito perché l’applicazione gira in un normale frame html che rende l’indirizzo visualizzato nella barra di IE sempre identico!): una volta eseguito RedirectToAction è come se avessi digitato quell’indirizzo (Controller/List nel mio caso) per cui se l’utente preme il pulsante Aggiorna del browser finisce nella prima modalità!

Soluzione “veloce”: ho spostato il codice presente nella prima action (Controller/List) in una funzione che richiamo da entrambe le action; la action ViewList è diventata:

        public ActionResult ViewList()

        {

            TempData["mode"] = "readonly";

            OnList_AddDataToViewData();

            return View("List");

        }

Print | posted on domenica 8 marzo 2009 00:25 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET