【问题标题】:Multiple usercontrols have one namespace多个用户控件有一个命名空间
【发布时间】:2014-11-01 14:35:19
【问题描述】:

我的 asp.net 网站中有多个用户控件,我为每个用户控件定义了一个名称空间,如下所示: 添加文档用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="AddDocument.ascx.cs" Inherits="DMS.UI.Users.Controls.AddDocument" %>

后面的C#代码:

namespace DMS.UI.Users.Controls
{
    public partial class AddDocument : UserControl
    {
    }
}

AddSubversion 用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="AddSubversion.ascx.cs" Inherits="DMS.UI.Users.Controls.AddSubversion" %>

后面的c#代码:

namespace DMS.UI.Users.Controls
{
    public partial class AddSubversion : UserControl
    {
    }
}

现在我需要在一个用户控件中使用其他用户控件,如下所示:

AddSubversion ucAddSubversion = (AddSubversion)this.Parent.Parent.FindControl("ucAddSubversion");

但程序无法识别所有用户控件都在一个命名空间中。为什么以及如何解决这个问题?

非常感谢

【问题讨论】:

  • 如果您想以这种方式工作,我鼓励您使用自定义控件而不是用户控件。
  • 文件顶部是否添加了using DMS.UI.Users.Controls;
  • @MatíasFidemraizer :我在用户控件中的 Html 设计具有更大的灵活性,......不幸的是,我在自定义控件中没有什么灵活性
  • @TimSchmelter : 所有用户控件都在一个命名空间中,无需添加 using!但即使我添加 using ,其他用户控件也无法识别
  • @minamorsali 您拥有更大的灵活性。主要缺点是您需要使用 C# 编写 HTML .....

标签: c# asp.net user-controls namespaces


【解决方案1】:

为用户控件定义命名空间不同于为类定义命名空间。如果我们想在另一个用户控件中使用一个用户控件,唯一的方法是在另一个用户控件中注册该用户控件。即使两个用户控件在一个命名空间中,如果没有注册 Visual Studio (2010),我们将无法访问该用户控件及其公共属性...

<%@ Register Src="AddSubversion.ascx" TagName="AddSubversion" TagPrefix="uc5" %>

【讨论】:

    猜你喜欢
    • 2021-09-22
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多