这个换肤是指动态切换视图文件夹,不是指换css和image,你懂的....

使用起来也很简单,核心就这么几句:

    public class Global : System.Web.HttpApplication
    {
        
protected void Application_Start(object sender, EventArgs e)
        {
            InitRouting(RouteTable.Routes);

            
// 使用自定义的皮肤视图引擎 SkinViewEngine
            
// 对应的视图文件夹为:/Skins/皮肤名称/控制器名称/
            
// 设置皮肤:HttpContext.SetSkinName(skin);
            
// 获取皮肤:string skinName = HttpContext.GetSkinName();
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(
new SkinViewEngine(GetSkins()));
        }

        
private static void InitRouting(RouteCollection routes)
        {
            routes.MapRoute(
"default""{controller}/{action}"new {controller="engine", action="index"});
        }

        
// (遍历Skins目录)获取网站能提供的所有皮肤方案
        public static string[] GetSkins()
        {
            List
<string> skins = new List<string>();
            
string skinFolder = HttpContext.Current.Server.MapPath("~/Skins/");
            
foreach (string folder in Directory.GetDirectories(skinFolder))
                skins.Add(
new DirectoryInfo(folder).Name);
            
return skins.ToArray();
        }
    }

 

代码下载:/Files/surfsky/MvcSkinDemo.rar

 

相关文章: