2010-09-20 26 views
6

Desidero avere due viste parziali, una per SEARCH e una per SEARCHRESULTS.Aggiorna una vista parziale da un'altra vista parziale - ASP.NET MVC2

Desidero aggiornare SEARCHRESULTS quando si fa clic sul pulsante "Cerca" sul modulo di visualizzazione parziale SEARCH. SEARCHRESULTS deve avere i dati del modulo alimentati dalla vista parziale di SEARCH.

Non sono assolutamente sicuro di come procedere. Posso aggiornare la vista parziale SEARCHRESULTS dall'azione Controller della mia vista parziale SEARCH?

risposta

8

General Discussion
Nelle viste di design pattern MVC sono a conoscenza gli uni degli altri. Possono essere legati insieme dal concetto di una vista che riunisce più viste parziali ma anche allora i parziali sono ignoranti l'uno dell'altro. Questo concetto è vero per ASP.NET MVC. Mike Brind fa un buon lavoro descrivendo partial e ViewData nel suo post ASP.NET MVC Partial Views and Strongly Typed Custom ViewModels.

specifico alla tua domanda
per rispondere alla tua domanda una vista parziale può avere un collegamento ad un'azione di controllo che rende un punto di vista diverso, a condizione che le informazioni appropriate viene passato al controller. Il modo in cui procederai dipenderà da ciò che stai cercando di fare.

Data la tua domanda, assumerò che la vista parziale SEARCH sia un semplice modulo con un campo di ricerca e un pulsante. Mentre SEARCHRESULTS è un elenco dei dati restituiti. In questa istanza creerai un'azione controller chiamata Search che accetta un valore stringa e restituisce solo il parziale o una vista contenente il parziale SEARCHRESULTS. Scott Guthrie fornisce una descrizione abbastanza buona del passaggio dei dati a una vista nel suo post del blog Passing ViewData from Controllers to Views.

// returning partial 
public ActionResult Search(string q) 
{ 
    //do search ....... 
    //................. 

    return PartialView("SEARCHREULTS", viewdata); 
} 
Problemi correlati