這個換膚是指動態切換視圖檔案夾,不是指換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