【问题标题】:Getting access to a custom Master page from a user control从用户控件访问自定义母版页
【发布时间】:2010-05-24 13:59:14
【问题描述】:

我们创建了一个从 asp.net Master 类继承的母版页。 我们还得到了继承标准 asp.net ui 控件类的 ui 控件。 我们的母版页有一个公共成员变量。我们需要能够从我们使用的 ui 控件访问该成员变量。 然而,我们似乎无法理解它?是我们的架构错了吗?还是想法本身 - 用户控制访问母版页变量?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    一般来说,这可能不是一个很好的设计模式。但是,您应该能够执行以下操作:

    MyMasterType myMaster = this.Page.Master as MyMasterType;
    if (myMaster != null)
    {
        myMaster.PublicProperty = value;
    }
    

    【讨论】:

    • 是的,这就是我们目前正在做的,但感觉不对。因此,我们将更改控件以具有公共属性。加载时,包含页面将值注入该属性。
    • 注入值是否比从用户控件中获取更好?我已经在注射并且正在寻找一种方法来代替它,但如果有充分的理由,我很乐意重新考虑。
    • 有几个原因:1) 在母版页上使用属性允许您在其他上下文(未来需要)中设置值,以及 2) 架构不再紧密耦合。如果母版页抓取数据,则母版页取决于存在的用户控件。
    • 我在想更多的是 UserControl 抓取母版页的属性。
    • 理想情况下,母版页和用户控件完全独立,以促进代码重用和松耦合。使用母版页和用户控件中的房子的中间页应该完成设置属性的工作。
    【解决方案2】:

    【讨论】:

    • 这是另一种方式...从 MasterPage 访问控件。我需要从控件访问 MasterPage。
    • 明白了,不是最好的设计模式,就像@etc 说的那样。
    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 2011-03-17
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多