CJCMS系列 說說專案中的外掛程式思想(2)

2022-02-05 12:51:10 字數 3066 閱讀 5506

今天是星期天,那我就趕緊多多的寫一些吧。

上一次的一篇文章,不知道大家有沒有看懂,要是沒有看懂,請回去慢慢的嚼透吧,我覺得認真的看,有一定的基礎應該能夠看懂。

上面一講我留下乙個疑問,那就是一句編譯後指令,有一些mvc基礎的人,應該能夠看出端倪,要是你沒有看懂,那就認真的聽我道來吧。

1 xcopy /s /y "

$(projectdir)bin\*""

$(solutiondir)cjcms.web\bin\"

2 xcopy /s /y "

$(projectdir)content\*""

$(solutiondir)cjcms.web\content

"3 xcopy /s /y "

$(projectdir)scripts\*""

$(solutiondir)cjcms.web\scripts

"4 xcopy /s /y /i "

$(projectdir)views\*""

$(solutiondir)cjcms.web\views\blog

"

第四行中那句**,我解釋一下,怕大家對於xcopy不大理解,這句主要就是在編譯之後把,專案的views目錄的檔案複製到解決方案檔案

cjcms.web\views\blog下,誰是cjcms.web,cjcms.web就是主專案,也就是把外掛程式的views都拷貝到cjcms.web下的views/blog去了,但是大家看一下,要是這樣的話,主專案的目錄結構成什麼樣子了。

主專案的views目錄有三層,而不是兩個層次,這樣子如何訪問到views/blog/blog/home.aspx呢,外掛程式中的controller結構你看一下是正常的目錄,那我們遇到了乙個問題,就是如何使得mvc支援多層目錄。

我在framework中寫了這麼乙個類,繼承一下mvc的actionfilterattribute,來攔截到請求,然後跳轉到你想要跑去的多層目錄去,folder變數就是views多層目錄中你多出來的目錄,多出來就是原本mvc是兩層目錄,而現在變成了多層目錄,在瀏覽器中輸入localhost/blog/home,如何能夠訪問到我上面例子的三層目錄呢,我其實多了一層目錄blog/,那你就可以在controller中新增屬性了。

//

//郵件: [email protected](僅僅支援商業合作洽談)

////

////

//同時由於專案引起的一切問題,原作者概不負責。

////

本專案所引用的所有類庫,仍然遵循其原本的協議,不得侵害其版權

////

////

您不可以移除專案中所有的宣告。

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.web.mvc;

namespace

cjcms.framework.routes

public customrouting(string

folder)

public

string folder }}

具體外掛程式中的controller怎麼用這個呢?
1

第17行你已經看到了,怎麼去處理,使得mvc支援多層目錄,好啦這一講也結束了。

下面,我會開始講講我寫得例子的整體的架構,也就是開始講ddd了,我的專案設計了,你準備好了嗎?

希望你能夠期待,要是大家感興趣,我會選擇開源,給大家看看,共同學習。

just waiting. go on  coding.

CJCMS系列 說說專案中如何使用搜尋引擎

開源全文搜尋引擎,比較火的當屬lucene.net。lucene.net是 lucene 的.net移植版本,是乙個開源的全文檢索引擎開發包,即它不是乙個完整的全文檢索引擎,而是乙個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。開發人員可以基於lucene.net實現全文檢索的功能。比較麻煩的...

vue專案中使用vant外掛程式

下面使用vant外掛程式的方法是官方推薦的一種方法,是自動按需引入的。如果您按照下面方法沒能成功引入vant,您可以到官網去檢視其它引入方法。vant官網 在專案的根目錄下,使用npm i vant s命令安裝vant 在專案的根目錄下,使用npm i babel plugin import d命令...

vue專案中封裝Toast外掛程式

模板 用來設定顯示的位置,css布局,資料之類的 方法 可以在想用的地方隨時呼叫 建立乙個toast外掛程式 可以在到處呼叫 還是需要這個模板的 外掛程式裡用的方法或者資料都是在這個模板中 一般都是使用方法 import toast from toast const obj 需要在main.js中先...