V dokumentaci to nejspíš nenajdete, nicméně ASP.NET opravdu parsuje direktivu @Page a hodnoty atributů v ní nalezených se snaží uložit do memberů příslušného jména.
Tímto způsobem funguje atribut nejenom Title, ale i atribut vlastní:
<%@Page CodeBehind="Default.aspx.cs" Inherits="Havit.Demo.Default_aspx" Title="Existující atribut" Nadpis="moje hodnota" MujCiselnyAtribut="15" %>...funguje to dokonce i na jiné typy než string, co jsem zkoušel, tak parser v pohodě zchroustne číselné typy a dělá korektní typovou kontrolu.
V samotné stránce (užitečné je to samozřejmě zejména v nějakém společném prapředkovi) se pak hodnota atributu dostane do příslušné property:
/// <summary>
/// Rodičovská třída všech stránek webu.
/// </summary>
public class PageBase : Page
{
/// <summary>
/// Nadpis stránky.
/// </summary>
public string Nadpis
{
get { return _nadpis; }
set { _nadpis = value; }
}
private string _nadpis;
}...úplně stejně to nejspíš půjde i s direktivami @Control či @Master.