【问题标题】:Function of user-control type in a master page母版页中用户控件类型的功能
【发布时间】:2014-10-15 04:16:24
【问题描述】:

我有一个名为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>

下面是它的代码:

public lcont getlcont()
{
    return lcont1;
}

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

【问题讨论】:

  • 母版页如何无法“识别”lcont?你有例外吗?
  • 这就是我的意思...母版页怎么会不识别 lcont。当我编译它时显示 the type or namespace lcont couldnt be found(are you missing a using directive or reference)。然而有趣的是它在我输入时通过智能显示 UserControl_lcont当在任何地方都没有定义UserControl_lcont 时继续。如果我选​​择将项目作为webproject 进行,会有什么不同。
  • 在创建用户控件后是否构建解决方案?
  • 是的,我已经构建了解决方案

标签: c# asp.net user-controls


【解决方案1】:

如果你在母版中实现了lcont,你肯定可以做公共功能 类型为lcont

你做这件事的方式是绝对正确的——应该怎么做。

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

那么应该怎么做呢?

  1. 检查lcont.ascx 页面的第一行。有一个名为Inherit 的属性。检查它的值,应该是lcont 而不是foldername_lcont
  2. 检查lcont.ascx.cs 文件中的类声明。可能是public partial class foldername_lcont : System.Web.UI.UserControl。将其更改为public partial class lcont : System.Web.UI.UserControl

现在您的母版页将识别lcont

有关更多信息,请参阅https://unschoolingcode.wordpress.com/2014/10/16/accessing-usercontrols-id-in-the-aspx-page/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多