Je suis en train d'essayer de mettre en œuvre le CMS beerhouse (ASP.NET 2.0 Programmation de site Web: Problème - Conception - Solution), je suis confronté à un problème dans le deuxième chapitre, tout en mettant en œuvre les thèmes.Sélection de thèmes
Le problème ici est que même si je choisis le blanc comme thème, il reste par défaut, bien que la publication se fasse, elle reste blanche. J'ai également appliqué le point d'arrêt, ici this.Page.Theme est toujours blanc. Est-ce que n'importe qui peut m'aider à trouver où le problème se situe?
Les thèmes sont appelés de la classe d'aide
//This is the helper class
public static string[] GetThemes()
{
if (HttpContext.Current.Cache["SiteThemes"] != null)
{
return (string[])HttpContext.Current.Cache["SiteThemes"];
}
else
{
string themesDirPath = HttpContext.Current.Server.MapPath("~/App_Themes");
// get the array of themes folders under /app_themes
string[] themes = Directory.GetDirectories(themesDirPath);
for (int i = 0; i <= themes.Length - 1; i++)
themes[i] = Path.GetFileName(themes[i]);
// cache the array with a dependency to the folder
CacheDependency dep = new CacheDependency(themesDirPath);
HttpContext.Current.Cache.Insert("SiteThemes", themes, dep);
return themes;
}
}
Et le dropdownlist est binded à la classe d'aide par le biais d'un contrôle utilisateur
protected void Page_Load(object sender, EventArgs e)
{
if (Globals.ThemesSelectorID.Length == 0)
Globals.ThemesSelectorID = ddlThemes.UniqueID;
ddlThemes.DataSource = Helpers.GetThemes();
ddlThemes.DataBind();
ddlThemes.SelectedValue = this.Page.Theme;
}
J'ai conçu à des thèmes, l'un est par défaut et la l'autre est blanc, et déclaré dans la section des pages en
web.config.
<pages theme="Default" masterPageFile="~/MyCMSMaster.master">