Aggiorna solo il pannello dei contenuti nella pagina principale sulla navigazione della pagina in asp.net mvc
-
05-07-2019 - |
Domanda
Ho una pagina principale con i riquadri Intestazione, Menu, Contenuto e Piè di pagina nella mia applicazione asp.net mvc (C #).
Non voglio che i riquadri Intestazione e Piè di pagina si aggiornino in ogni navigazione della pagina, solo i riquadri Menu e Contenuto dovrebbero essere aggiornati.
Come posso ottenerlo nell'applicazione asp.net mvc? eventuali suggerimenti
Soluzione
Un puro carico ajax all'interno delle pagine potrebbe essere ottenuto catturando i clic dei collegamenti nella navigazione verso qualcosa del tipo:
$('a:not(.external)').each(function(){
$(this).attr('href', '#'+this.href);
});
Quindi puoi utilizzare il plugin jQuery BBQ per gestire il tuo pulsante Indietro e la pagina viene caricata con l'evento " onHashChange ". Ciò ti consentirà di caricare ajax ciascuna delle parti principali della pagina (probabilmente con una chiamata di tipo $ ('# main-div'). Load (url);
). La demo di BBQ fa esattamente quello che ti piacerebbe, con l'ulteriore vantaggio di non rovinare il pulsante Indietro, quindi suggerirei di dare un'occhiata a quello.
Altri suggerimenti
Effettua chiamate Ajax al controller, come sotto e crea il " *. ascx " PartialView ti serve
$('#divMainContent').load("./LoadMainContent");
[Authorize]
public ActionResult LoadMainContent()
{
return PartialView("MainContent", sp);
}