2012-12-13 9 views
5
  1. qual è lo scopo di Viewbag in mvc3 è disponibile solo nella pagina che stiamo visualizzando tramite il mio metodo di azione.
  2. Come mantenere le informazioni sulla pagina in MVC. Supponiamo di creare un nuovo dipendente e, quando passo alla pagina successiva, desidero che le informazioni sui dipendenti vengano visualizzate.
  3. Come manteniamo lo stato in MVC.
+1

Vorrei anche aggiungere cercare di evitare l'uso di ViewBag a meno che non si deve perché non si può quindi utilizzare i metodi di supporto generici come EditorFor , se avete bisogno di un il mix di dati provenienti da diversi modelli sulla tua pagina crea un ViewModel che ha tutto ciò che ti serve, e che a lungo andare la vita diventa molto più facile. –

risposta

4
  1. il view bag è parte di httpcontext. è principalmente impostato nell'azione del controller e letto nella vista, ma è accessibile da qualsiasi punto del framework mvc all'interno di una richiesta/risposta http.
  2. il Web non ha lo stato, come si farebbe in un'app rich client. Per mantenere i valori da una pagina all'altra (o più opportunamente, richiedere la richiesta) è possibile utilizzare i cookie, la sessione, la stringa di query, il corpo della richiesta (si pensi alle richieste post/put).
  3. uguale a # 2.
1
  1. ViewBag è un'espressione dinamica ed è disponibile per tutte le pagine. I dati in ViewBag sono la cosa che cambia come da noi assegnato. Se assegniamo ViewBag.items=itemlist; per un View, sarà costante per quello View. Siamo in grado di mettere il maggior numero di dati in ViewBag per pagina come vogliamo che come, per una singola pagina, possiamo avere

    ViewBag.items=itemlist; 
    ViewBag.table=usertable; 
    
  2. È possibile mantenere le informazioni attraverso le pagine di MVC passando i dati come parametro per la metodo che rendres la vista su cui vogliamo mantenere le informazioni come di seguito:

    public ActionResult CreateEmployee(EmployeeModel emp) 
    { 
        //Add Employee to db 
        ViewBag.employee=emp; 
        RedirectToAction("MethodToCall","Controller"); 
    } 
    

così la pagina successiva può avere le informazioni dei dipendenti contenute nel ViewBag

In alternativa, è possibile utilizzare anche ViewData.

3] Stato può essere mantenuta utilizzando le sessioni, cookie ecc