在ascx用户控件中调用aspx方法

时间:2018-07-09 21:03:33

标签: c# asp.net webforms

我有两个aspx页面:A.aspx和B.aspx。 这些页面只有一种方法Calculate()。

每个页面都包含用户控件C.ascx。

如何在C.ascx中调用方法Calculate?

我找到了一种方法,但这很脏:

A pageA = this.Page as A;

if (page == null) {
    B pageB = this.Page as B;
    pageB.Calculate();
}
else {
    pageA.Calculate();
}

如何改进此代码?

我每页有2个区块。我检查usercontrol中的条件,如果条件为true,我想在页面中隐藏usercontrol并显示另一个div。也许我可以用其他方式重写代码?

1 个答案:

答案 0 :(得分:1)

在这种情况下,看来您的设计是错误的,您应该在用户控件中而不是页面中使用Calculate()方法。实际上,您应该在容器页面中使用用户控件。

另一种方法是将该方法重构为一个单独的类,因此您可以在用户控件和页面中重复使用该方法。