Come posso gestire il flusso di pagine in MVC (in particolare asp.net)
-
08-06-2019 - |
Domanda
Se dovessi fornire una procedura guidata come l'esperienza di immissione dei moduli in mvc, come astrarresti il flusso della pagina?
Soluzione
Esaminare il modello post-reindirizzamento-get.
http://weblogs.asp.net/mhawley/archive/tags/MVC/default.aspx
http://devlicio.us/blogs/tim_barcz/archive/2008/08/22/prg-pattern-in-the-asp-net-mvc-framework.aspx
Usalo insieme a un modello di dominio robusto (per monitorare i passaggi o lo stato di completamento del modulo o come lo chiami tu) e sei a posto.
Altri suggerimenti
Per mantenere i passaggi è possibile implementare filtri di azione del flusso di pagina, che forniscono un'esperienza come questa:
[RequiredStep(FlowStart = true)]
public ActionResult Confirm()
{
return View();
}
[RequiredStep (PreviousStep = "Confirm")]
public ActionResult ExecuteOrder()
{
return RedirectToAction("ThankYou");
}
[RequiredStep(PreviousStep = "ExecuteOrder")]
public ActionResult ThankYou()
{
return View();
}
Ho lasciato il flusso della pagina fino alla vista, a cui credo appartenga, quindi visualizzazioni diverse potrebbero avere flussi di pagina diversi (ad es.per client browser desktop o client di telefonia mobile, ecc.) L'ho scritto sul mio blog: Una procedura guidata RESTful che utilizza ASP.Net MVC... Forse?
public class CreateAccountWizardController : Controller
{
public ActionRresult Step1()
{
}
public ActionResult Step2()
{
}
}
Esistono due modi: creare un'azione per ogni passaggio del processo della procedura guidata o creare un parametro da passare al metodo dell'azione.Come fare un passo che ti permetterà di sapere in quale stato si trova la procedura guidata.