2

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

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

但据我所见,区域特征存在问题,所以也许不是什么好主意。

4

2 回答 2

4

在对区域功能进行了一些体验之后,我认为区域最适合您网站中完全不同的东西,即不与根区域共享相同的母版页。

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

于 2010-02-16T19:39:39.287 回答
3

对于引用公共母版页的区域来说,这真是太不幸了!杀了一天来解决这个问题无济于事。

可能,这里描述了看起来最接近为母版页实现正确“区域”标记的技巧,也就是说,建议在 master 的 OnPreRender 中剪断以下内容:

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

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

于 2011-03-16T12:06:33.460 回答