Test per vedere se il contenuto ContentPlaceHolder è stato sovrascritto da una pagina figlio?
-
22-07-2019 - |
Domanda
Attualmente sto migrando un'applicazione .net 1.1 su .net 3.5.
L'applicazione .net 1.1 ha un numero di numero di pagine + usercontrol che vorrei migrare alle pagine principali.
Il mio problema sta provando a testare in modo programmatico per vedere se il contenuto dei titolari di contenuti della pagina master è stato sovrascritto da una pagina figlio.
- È possibile?
- Qualcuno ha campioni o riferimenti che potrei dare un'occhiata?
Grazie in anticipo.
Soluzione
Una pagina può comunicare con la pagina principale, ma non viceversa poiché il contenuto nel contentplaceholder non appartiene alla pagina principale. Il modo più rapido per impostare una pagina "registrazione" stesso alla pagina principale è dichiarare una classe che eredita da .NET MasterPage ed esporre funzionalità di comunicazione in quella classe.
classe astratta pubblica MyMaster: System.Web.UI.MasterPage { public MyMaster () {}
public abstract void TellMeSomethingAboutTheContent(SomeArgs args);
}
Quindi nella tua pagina che utilizza il master puoi fare qualcosa del tipo:
protected void Page_Load(object sender, EventArgs e)
{
MyMaster master = Page.Master as MyMaster;
if (master == null)
return;
master.TellMeSomethingAboutTheContent(args);
}
Supponendo ovviamente che tu abbia una classe SomeArgs che contiene i dati che vuoi che la pagina principale conosca.