我需要为网站创建一个布局。(我目前正在母版页上工作)。
但是,徽标(ascx)位于不同的位置:(位置由查询字符串值确定…)。
如果ascx知道在哪里通过查询字符串呈现自己

master page是否应该提供渲染位置?
根据DIP(依赖性反转),仅供参考:
高级班不应依赖低级班。两者都应该
依赖抽象
所以我想在母版页的thc-ctor中,我应该向ascx-ctor提供它应该呈现的位置。
like in this first sample
我说得对吗?或者,有更好的办法吗?
(p.s.我已经知道母版页也继承了usercontrol)。

最佳答案

母版页将知道如何呈现任何周围的div标记和/或设置html其他区域的可见性。对于.ascx来说,了解其周围的环境是非常尴尬的。
尽管如此,我还是会更进一步。我会让母版页获取查询字符串值。但是我会让另一个类(LogotypeService)运行一个方法(GetPosition),该方法接受该值并理解它并返回一些枚举(LogotypePosition)。如果出于某种原因徽标必须知道它在哪里,则它可以将此枚举作为母版页设置的属性。
这样,无论您的主控还是控件都不包含逻辑来确定为什么应该在某个位置呈现它。但是他们有足够的信息把它放在正确的位置,甚至在需要的时候做一些自定义渲染。

10-07 15:51