最簡單的方法為Mvc程式實現換膚功能

2022-02-06 16:27:01 字數 1853 閱讀 9559

為web程式實現**的功能一直是一項長久不衰的話題。

實現的方法無外乎用模版引擎解析**的模版生成頁面。

模版引擎也是多種多樣,千奇百怪。 

不過我覺得mvc自帶的razor配合visual studio在體驗上是最爽的模版引擎。

mvc的view解析其實就是一種模版解析行為,那麼我們是否可以利用mvc的view解析實現程式的換膚功能呢?這樣就不需要在另做模版解析的工作。

下面就簡單實現乙個換膚的例子。

先實現乙個普通的mvc程式,然後再修改成帶**切換的mvc程式。

新建乙個空的mvc3專案。

實現homecontroller下的indexaction ,並提供一些資料。

public actionresult index()

;viewbag.news = news;

return view();}}

新建indexaction的view,並顯示action提供的資料。

<

h1>

@viewbag.title

h1>

<

ul>

@foreach (string str in viewbag.news)

ul>

專案的結構

專案執行結果:

到此乙個普通的mvc程式就完了,下面我們再實現換膚功能。

修改_viewstart.cshtml 檔案如下。

@在view目錄下新建乙個skins目錄,用於存放**檔案。

在skins目錄下新建兩個**目錄,綠衣盎然,紅妝素裹。並把原view目錄下除web.config外的檔案所有檔案分別複製到這兩個目錄下。

然後分別為兩套**的_layout.cshtml,加上不同的樣式。

紅妝素裹 _layout.cshtml

綠意盎然 _layout.cshtml 

此時執行專案肯定是報錯的,提示找不到視**件。

下面我們就通過修改view的搜尋路徑,實現模版的切換。

修改global.asax檔案。

protected

綠衣盎然

");//

修改**名換膚

}public

static

void regskin(string skinname)

/.cshtml","

~/views/skins/

"+skinname+"

//.vbhtml","

~/views/skins/

"+skinname+"

//shared/.cshtml","

~/views/skins/

"+skinname+"

//shared/.vbhtml","

~/views//.cshtml","

~/views//.vbhtml","

~/views/shared/.cshtml","

~/views/shared/.vbhtml"};

}至此換膚功能已經完成。

PHP實現MVC開發得最簡單的方法 單點入口

很早前就想寫一些關於php實現mvc的新的體會。今天就開始詳細的寫寫我對mvc的一些理解,以及我在開發過程中實現自己的乙個框架的乙個流程。其中或許說的不正確,還望指正!m是指model。controller 並不參與業務邏輯,整個業務邏輯部分應該是放在 model 層中的。controller 只起...

最簡單的方法實現遞迴

方法一 取出第一條 var first allmenulist.where e e.parentid 0 tolist foreach遞迴 allmenulist.foreach e e.childrenitem allmenulist.where a a.parentid e.id tolist ...

守護程序的最簡單實現方法

include include include void createdaemon void else if pid 0 exit 0 父程序退出 setsid 建立新的會話組 if chdir 0 改變程序工作目錄 close 0 if open dev null o rdwr 0 0號檔案描述符...