ASP.NET MVC领域的最佳实践

时间:2010-02-16 08:01:30

标签: asp.net-mvc structure asp.net-mvc-areas

我目前正在构建一个CMS系统,我需要一种简单的方法来包含或排除组件。

我的第一个想法是使用asp.net mvc区域功能,以识别每个组件本身。

但是从我看到的情况来看,区域功能有problems,所以也许这不是一个好主意。

2 个答案:

答案 0 :(得分:4)

在对区域功能有一些经验之后,我认为区域最适合您站点中完全不同的区域,不与根区域共享相同的母版页。

就我而言,这些组件是根站点的附加组件,并且共享相同的母版页,不是最佳实践使用区域。

答案 1 :(得分:2)

对于引用通用母版页的区域来说,这太不走运了!杀了一天无法解决这个问题。

可能看起来最接近于为主页面实现正确的“区域”标记的技巧here,即建议在主人的OnPreRender中剪切以下内容:

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

可悲的是,它对我不起作用主要是因为我的ActionLinks不是直接在master中生成的,而是在sibling< asp:content />中生成,因为仍然使用了页面的原始区域。