程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Asp.Net MVC:基於cookie的用戶自選視圖引擎實現

Asp.Net MVC:基於cookie的用戶自選視圖引擎實現

編輯:關於ASP.NET

在我以前的文章中詳細介紹了目前mvc框架中的視圖引擎管理,這個視圖引擎可以方便的實現系統多視圖引擎的管理,讓系統可以輕松更好視圖引擎,但是,在一些應用,比如bbs,多用戶blog中,往往需要提供用戶自選skin的功能,比如bbs中某個用戶通過菜單可以隨意更換自己的skin設置,而mvc框架的默認視圖管理器對這個要求就無法做到了,而本文則是使用viewengine規則來實現一個用戶自選視圖引擎的功能.

在本系統中,用戶選擇的skin信息將保存在cookie中,這意味著可以讓用戶控制這個選擇保存的時間.

首先,這個系統仍然是基於ViewEngine,我們在以前的文章中可以看到,mvc框架用一個AutoViewEngine來管理存在的所有ViewEngine,那麼我們也可以考慮用一個SelectViewEngine來管理一系列我們特定的可選擇ViewEngine.下面先看看這個核心部分的類:

從圖中可以看到,這兒我們提供了一個新的接口ISelectViewEngine,它在普通的ViewEngine上添加了一個新的Name屬性,該屬性標示著唯一的視圖引擎名稱,然後我們對WebFormViewEngine進行封裝,並實現ISelectViewEngine接口:

Code

public SelectWebFormViewEngine(string name) {
 Name = name;
 MasterLocationFormats = new[] {
  "~/skins/" + Name + "/{1}/{0}.master",
  "~/skins/" + Name + "/shared/{0}.master"
 };
 ViewLocationFormats = new[] {
  "~/skins/" + Name + "/{1}/{0}.aspx",
  "~/skins/" + Name + "/{1}/{0}.ascx",
  "~/skins/" + Name + "/shared/{0}.aspx",
  "~/skins/" + Name + "/shared/{0}.ascx"
 };
 PartialViewLocationFormats = ViewLocationFormats;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved