2012-12-27 24 views
2

我需要为网站创建布局。 (我目前正在主页上工作)。SOLID,MasterPages和ASCX?

然而标志(ASCX)一个处于不同位置:(位置由查询字符串值确定...)。

enter image description here

  • 如若ascx知道通过查询字符串

  • 如若master page提供它在哪里被渲染来表现自己?

FYI根据DIP(依赖倒置):

高层类不应该依赖于低层次的班。两者都应该 依赖于抽象

所以我想,在母版页的THC构造函数,我应该向ascx的构造函数,它应该被渲染。

like in this first sample

  • 我说得对不对?或者,有更好的方法?

(p.s.我已经知道masterpage也继承usercontrol)。

回答

0

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

这就是说,我会更进一步。我会让母版页获取查询字符串值。但是接下来我会让另一个类(LogotypeService)运行一个方法(GetPosition),它接受该值并理解它并返回一些枚举(LogotypePosition)。如果徽标出于某种原因必须知道它的位置,则可以将此枚举作为由母版页设置的属性。

这样,你的主人和你的控制都不包含为什么它应该被渲染在某个位置的逻辑。但是他们有足够的信息将其置于正确的位置,甚至可以根据需要进行一些自定义渲染。

0

是的母版页应该负责渲染页面上的用户控件。

所以我希望你必须把它包装在一个div中,并且改变URL参数。