【问题标题】:Call a method from the helper class on the page that is calling the helper method从调用辅助方法的页面上的辅助类调用方法
【发布时间】:2012-04-14 20:35:01
【问题描述】:

我有 3 个 ASP.NET 页面。每个都有自己的 GetSearchResult 方法,该方法产生不同的搜索结果并填充 GridView。每个页面都从帮助程序类中调用一个共享的帮助程序方法。

现在,在这个帮助器类中,我想执行属于调用该帮助器方法的页面上的 GetSearchResult 方法。

这可能吗?如果是这样,我应该怎么做?

【问题讨论】:

    标签: c# asp.net helpers


    【解决方案1】:

    将拥有方法 GetSearchResult 的类的一个实例作为参数传递给您的辅助方法。这将使辅助方法可以访问调用者方法。您需要实现一个接口来执行此操作。

    public interface ISearchable
    {
        void GetSearchResult();
    }
    
    public class MyPage : Page, ISearchable
    {
        public void GetSearchResult() {
            HelperClass.HelperMethod(this); // Pass in
        }
    }
    
    public static class HelperClass
    {
        public static void HelperMethod(ISearchable page) {
            page.GetSearchResult();
        }
    }
    

    【讨论】:

    • 谢谢,这看起来正是我需要的!
    【解决方案2】:

    您可以将页面的引用作为参数传递给辅助方法,然后在页面上再次调用 GetSearchResult。 (理想情况下,您的页面应该实现一个接口,例如 ISearchPage,其中包含方法 GetSearchResult)

    [编辑:正如我在上面输入的内容,大卫安德森在他的回答中提供了代码]

    或者,在您的辅助方法中,在辅助对象上设置状态标志(或使用状态枚举)。在您的页面中,您可以读取该标志或枚举值,如果状态表明应该再次调用 GetSearchResult,请再次调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2011-03-27
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多