2010-02-16 131 views
1

我目前正在構建一個CMS系統,我需要一個簡單的方法來包含或排除組件。ASP.NET MVC區域的最佳實踐

我首先想到的是使用asp.net mvc區域功能來識別每個組件本身。

但從我所看到的,該地區的功能有problems,所以也許這不是一個好主意。

回答

4

經過幾次關於區域功能的體驗之後,我認爲這些區域對於您網站中完全不同的區域是最好的,它不會與根區域共享相同的主頁面。

就我而言,這些組件是根網站的附加組件,並且共享相同的母版頁,但最好不要使用區域。

2

對於引用共同母版頁的區域來說,這太不吉利了!殺了一天解決這個無濟於事。

也許,這看起來是最接近實現母版頁正確的「區域」令牌的伎倆被描述here,也就是暗示主人的OnPreRender內使用下面的剪斷:

var area = ViewContext.RouteData.DataTokens["area"]; 
ViewContext.RouteData.DataTokens["area"] = ""; 
base.OnPreRender(e); 
ViewContext.RouteData.DataTokens["area"] = area 

可悲的是,它沒」 t主要是因爲我的動作鏈接不是直接生成在主文件夾中,而是在同一個頁面的原始區域仍然使用的同一個頁面中:< asp:content/>。