确定已安装的ASP.NET主题

Oun*_*ess 3 asp.net themes

是否有一种简洁的编程方式来确定哪些主题安装在ASP.NET应用程序中?

我有几个ASP.NET应用程序使用名为"Theme"的cookie来设置Page PreInit事件中的主题.问题是,在我的开发环境中使用localhost时,一个应用程序的主题名称会呈现给另一个应用程序,从而抛出异常:

在应用程序或全局主题目录中找不到主题"XYZ".

我想我可能只能检查我的应用程序首先要查看哪些主题是否有效 - 即没有查看App_Themes文件夹的内容.

M4N*_*M4N 5

如果不查看App_Themes文件夹,我认为没有办法做到这一点.

但您可以使用以下内容轻松列出现有主题:

DirectoryInfo themes = new DirectoryInfo(Server.MapPath("~/App_Themes"));
foreach (DirectoryInfo theme in themes.GetDirectories())
{
    string themeName = theme.Name;
}
Run Code Online (Sandbox Code Playgroud)

或者检查给定主题是否存在:

Directory.Exists(Server.MapPath("~/App_Themes/" + theTheme))
Run Code Online (Sandbox Code Playgroud)