0

我创建了一个自定义 Web 控件,我必须将其嵌入到 SharePoint 内的页面布局中。基本上,页面布局将仅由内部带有网络表单的页面使用,并且控件充当一种导航菜单来跟踪表单页面的进度。

现在,我知道该控件将始终只声明一次,并且它必须可由表单页面访问。我没有从表单页面中查找父级的控件集合,而是这样做了。

    public static QuickNavigation Self
    {
        get
        {
            return System.Web.HttpContext.Current.Items["QuickNavigation"] as QuickNavigation;
        }
        private set
        {
            System.Web.HttpContext.Current.Items["QuickNavigation"] = value;
        }
    }

    public QuickNavigation()
    {
        Self = this;
    }

为了从表单页面访问控件实例,我调用了类的唯一静态属性。你怎么看,有没有更好的做法?

4

1 回答 1

1

它可以工作,但在我看来,需要一个控件的引用才能在其他控件中有一些业务逻辑,这似乎很奇怪。

您是否考虑过将代码与业务控制器和单独的 UI 视图等服务分离。在这种情况下,您将所有 UI 视图插入到业务控制器中,并且不需要任何控件来控制引用。在这种情况下,分享您的状态的最佳位置是 Items 集合,以便您可以保留这种做法。

于 2013-04-07T08:26:43.653 回答