Ciao,
domanda da superniubbo.

Mi sono lanciato da poche settimane al codice ASP/ASP.NET + C#.

Volevo creare una pagina in maniera dinamica: ovvero.

La mia mainpage ha un indirizzo:
www.miosito.it/default.aspx

Visto che parte del layout del sito non cambia col cambiare delle pagine ( header, footer, menu ), pensavo di far disegnare le parti comuni in modo statico, e le parti che cambiano utilizzando la sintassi .

L'idea principale era questa:

codice:
<div id="header">
   IL MIO HEADER
</div>
<div id="menu">
  <% WriteMenu(); %>
</div>
<div id="content">
<% WriteContent (); %>
</div>
Il codice in WriteContent e' il seguente:
codice:
string page = MyPage.Request.QueryString["pg"];
switch (page)
{
  case "1":
    MyPage.Response.Write("");
    break;
  case "2":
    MyPageResponse.Write("");
    break;
}
Praticamente:
Se viene passato un
www.miosito.it/default.aspx?pg=1 vedo la pagina 1
www.miosito.it/default.aspx?pg=2 vedo la pagina 2

La cosa strana e' che scrivendo questo codice, all'interno del codice HTML della pagina generata, non ho l'inclusione del file history, piuttosto che album, ma rimane presente il testo esplicito .

Cioe', aprendo dal browser Visualizza/HTML vedo:

codice:
<div id="header">
   IL MIO HEADER
</div>
<div id="menu">
  Storia
  Album
</div>
<div id="content">
    
</div>
Perche' ???


Ho trovato una soluzione, creando la pagina aspx in questo modo:
codice:
<div id="menu">
  <% WriteMenu(); %>
</div>
<div id="content">
  <% string page = Request.QueryString["pg"];
  switch (page)
  {
    case "1": %>
      
   <% break; 
   case "2": %>
  
   <% break; %>
   <% } %>
</div>
Funziona, ma oltre a essere noioso da scrivere, non lo trovo molto pulito.
Non ci sarebbe un modo piu' semplice e chiaro per fare il tutto ?
Mi manca qualche informazione di base ?

Grazie a chiunque avra' voglia di rispondermi.

Mauro