• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Kevin Cheng's Yard
电脑是我的老婆,编程是我的灵魂,代码是我的语言,按键是我在歌唱。
https://github.com/surfsky/
博客园    首页    新随笔    联系   管理    订阅  订阅

ASP.NET MVC 换肤方案

这个换肤是指动态切换视图文件夹,不是指换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

 

转载请注明出处:http://surfsky.cnblogs.com 

posted @ 2010-10-12 13:25  surfsky  阅读(2412)  评论(5)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3