C# 母版页中用户控件类型的功能

C# 母版页中用户控件类型的功能,c#,asp.net,user-controls,C#,Asp.net,User Controls,我有一个名为lcont.ascx的用户控制文件。此lcont已被拖到母版页中 现在我想在母版页中创建一个类型为lcont的公共函数,但是masterpage.cs无法识别lcont(在我构建时说,`找不到类型或命名空间lcont(您是否缺少using指令或引用)) 为什么??我以前用过这种方法,而且很有效 这是我的主页: <%@ Register src="Usercontrol/lcont.ascx" tagname="lcont" tagprefix="uc1" %> <

我有一个名为
lcont.ascx
的用户控制文件。此
lcont
已被拖到母版页中

现在我想在母版页中创建一个类型为
lcont
的公共函数,但是
masterpage.cs
无法识别
lcont
(在我构建时说,`找不到类型或命名空间lcont(您是否缺少using指令或引用))

为什么??我以前用过这种方法,而且很有效

这是我的主页:

<%@ Register src="Usercontrol/lcont.ascx" tagname="lcont" tagprefix="uc1" %>

 <div class="container" >
<form id="form1" runat="server">

<div class=" row ">
  <div class="col-lg-12">
     <uc3:Header ID="Header1" runat="server" />
  </div>
  </div>

        <div class="col-lg-3" style=" background:rgb(245,245,245); margin-right:1%; min-height:500px; " >
          <uc1:lcont ID="lcont1" runat="server" />
        </div>

实际上,我想要的是在ASPX页面中访问用户控件的ID。用户控件当然包含在母版页中。除此之外,我还需要什么来解决这个问题呢?

如果您已经在母版页中实现了
lcont
,那么您肯定可以公开该功能 属于
lcont
类型

你做这件事的方式绝对正确——确切地说应该怎么做

据我所知,我认为问题在于用户控件的类名。在公共函数中使用的
lcont
应该是
lcont
用户控件的类名;但有时类名不是用户控件的文件名。我的意思是,如果您的文件名是
lcont.ascx
,那么您假设类名是
lcont
——在这种情况下,您的代码可以工作;但有时类名是
foldername\u usercontrolfilename
——在这种情况下,代码将无法工作

那么应该怎么做呢

  • 检查
    lcont.ascx
    页面的第一行。有一个名为
    Inherit
    的属性。检查其值,该值应为
    lcont
    而不是
    foldername\u lcont
  • 检查
    lcont.ascx.cs
    文件中的类声明。它可能是
    公共部分类foldername\u lcont:System.Web.UI.UserControl
    。将其更改为
    公共部分类lcont:System.Web.UI.UserControl
  • 现在,母版页将识别
    lcont


    有关这方面的更多信息,请参见母版页如何不“识别”lcont?你有例外吗?这正是我的观点…母版页怎么可能不识别lcont。当我编译它时,它说
    类型或命名空间lcont找不到(你是否缺少using指令或引用)
    。然而有趣的是,当我在任何地方都没有定义
    用户控制时,键入lcont时,它会通过智能显示
    用户控制\u lcont
    。如果我选择以
    web
    project
    的方式执行项目,这有什么区别吗?创建用户控制后,您是否构建了解决方案?是的,我知道我们已经制定了解决方案
    public lcont getlcont()
    {
        return lcont1;
    }