2010-02-16 89 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/>。