2016-02-29 35 views
-2

在法語中,「驢橋」是一個顯而易見的難題,要學會拋棄新手 - 驢子。這個表達方式與教育者們的光顧保證一起使用,他們知道困難是顯而易見的,而不是真實的,驢子必須穿越橋樑。在asp.net mvc項目中命名文件和文件夾的策略性強化策略

好吧,我是驢子,而且我正在用文件夾結構和asp.net mvc項目的「虛擬」URL解決實際麻煩。 Url現在是僞路徑信息的混合體,在路由中編碼和參數,解析爲控制器類,它們是類,它們沒有目錄的概念。因此,似乎沒有簡單的方式使用相對路徑/ URL來引用與動態頁面相關聯的靜態資源:腳本文件,樣式表,剃刀視圖,圖像。 .Net有助於爲視圖默認搜索位置以及「內容」,「腳本」,「圖像」的默認文件夾。我感覺他們希望我按類型歸檔東西。但是這要求我在每個位置創建文件和子文件夾名稱,然後對控制器和視圖中的結果路徑進行硬編碼。由於給定的控制器通常只有少數幾個緊密耦合的視圖,99.9%的視圖有1個腳本文件和1個樣式表,所以這個名稱發明和按類型分類引入了不必要的脆性和複雜性,並掩蓋了什麼項目實際上是。

是否有其他人打架?他們是一個經過實踐驗證的大型mvc項目命名策略:

我所知道的areas作爲一種細分的MVC項目爲功能分組,但這似乎只是重新每個區域內的問題。我查看了this method for自定義視圖的搜索位置,但沒有動態元素。我有implemented a view engine對視圖路徑具有細粒度的運行時控制,如果你很勇敢,這很好,但我仍然不確定如何最好地使用它,並且我被潛在的緩存問題拖延了。對於所有意見分歧,我特別感興趣的回答是什麼,我應該做。

回答

1

感謝所有的downvoters,不容忍的鄉村民俗。拒絕過橋的驢子是,他們都掛在綠色的田野,愉快地舔012 Nancy和建立神話般的歐文管道。 Feature folders是未來。

0

我同意你試圖按類型排列元素通常是有問題的。例如,將客戶和產品的C#接口放在同一個「Interfaces」文件夾中並不是我個人熱衷的,我寧願有一個Customers文件夾和一個Products文件夾,每個文件夾都帶有一個Interfaces文件夾。

但是,使用MVC,有很多強制性和未強制的約定,您可能必須忍受。例如,如果您有一個名爲ProductContoller的控制器,它將自動在Views \ Product文件夾中查找視圖。因此,您的產品index.aspx/cshtml視圖可以很好地從您的其他索引視圖中分割出來。

對於像腳本和CSS這樣的東西,這些不是強制的,技術上你可以把它們放在任何地方,但是它是一個跨越許多Web框架的約定,使它們保持在同一個根文件夾中。在某些框架中,您將明確允許公共訪問某些文件夾來讀取文件,因此您希望對所有腳本或CSS文件一起執行此操作。

這不是一個答案,但我希望它有幫助。

+0

在橋上,我去那。鞭打併拖動。 – bbsimonbb

0

然後進行硬編碼在控制器和視圖

使用UrlHelperUrl場所在控制器和視圖)所得到的路徑。用特殊功能擴展它,以解析您的特定網址,如this blog post do

對於解析視圖,請遵循Dorian's answer中解釋的MVC約定。