天天看點

ASP.NET MVC:多模闆支援

準備寫個部落格練習一下WEB程式設計,有一個需求就是多模闆支援,類似部落格園的自定義模闆一樣,在ASP.NET MVC中如何處理這個需求呢?

描述

允許自定義模闆,比如:傳統模闆、Metro模闆等

模闆結構

ASP.NET MVC:多模闆支援

重寫模闆引擎的預設搜尋路徑

ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援

分析

這回導緻全局的修改,或者應該增加一個搜尋路徑(這裡就不測試了),因為有些視圖是不用多模闆支援的,是以這種方式不太适合。

為VIewResult指定路徑

這種非常靈活,符合需要,但是代碼看起來不夠漂亮,好在MVC非常靈活,可以用Filter機制幫我們處理。

Filter機制

ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援

采用FIlter這種AOP機制,讓調用代碼看起來非常漂亮,最終就采用這種方式。

代碼

ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援

運作效果

ASP.NET MVC:多模闆支援
ASP.NET MVC:多模闆支援

ViewResult的ViewName可以是絕對路徑,也可以是相對路徑,預設的相對路徑是相對于Controller目錄。

繼續閱讀