2

我需要为网站创建布局。(我目前正在处理母版页)。

但是,徽标(ascx)位于不同的位置:(位置由查询字符串值确定...)。

在此处输入图像描述

  • 是否应该ascx知道通过查询字符串在哪里呈现自己

或者

  • 应该master page提供它在哪里呈现?

仅供参考,根据 DIP(依赖倒置):

高级类不应该依赖于低级类。两者都应该依赖于抽象

所以我想在母版页的 ctor 中,我应该向 ascx ctor 提供它应该呈现的位置。

就像在第一个示例中一样

  • 我对吗 ?或者,有更好的方法吗?

(ps我已经知道masterpage也是继承的usercontrol)。

4

2 回答 2

0

是的,母版页应该负责在页面上呈现用户控件。

所以我希望你必须将它包装在一个 div 中,类随 URL 参数而变化。

于 2012-12-27T12:37:32.263 回答
0

母版页将知道如何呈现任何周围的 div 标签和/或设置对 html 其他区域的可见性。.ascx 知道其周围的上下文会很尴尬。

话虽如此,我会更进一步。我会让母版页获取查询字符串值。但随后我将有另一个类 (LogotypeService) 运行一个方法 (GetPosition),该方法采用该值并理解它并返回一些枚举 (LogotypePosition)。如果徽标出于某种原因必须知道它在哪里,它可以将此枚举作为由母版页设置的属性。

这样,您的 master 和您的控件都不包含用于确定为什么应该在某个位置呈现它的逻辑。但是他们有足够的信息将其放置在正确的位置,甚至在需要时进行一些自定义渲染。

于 2012-12-27T14:30:51.180 回答