在母版页的当前上下文中不存在控件

时间:2012-12-21 12:43:56

标签: asp.net master-pages

我在asp.net中有一个web项目 我有一个母版页面,其中包含一个名为lkBtnUserFullName的链接按钮,但我无法在Page_Load Masterpage.master.cs中访问此控件 当我手动访问此控件时,我将出错:

  

名称lkBtnUserFullName在当前上下文中不存在

我该如何解决这个问题?

更新

我的代码:

<asp:LinkButton ToolTip="Please Click Here!" 
 ID="lkBtnUserFullName" PostBackUrl="~/admins/profile.aspx" 
  runat="server">Majid Basirati</asp:LinkButton></span>
<{1}} Page_Load中的

MasterPage.master.cs

3 个答案:

答案 0 :(得分:2)

右键单击解决方案资源管理器中的母版页文件并选择转换为Web应用程序,它将为您重新生成.designer文件,您将再次能够访问所有母版页服务器控件来自背后的代码

答案 1 :(得分:0)

看起来Visual Studio与设计器问题同步。我有好几次。通常我会尝试以下:

从您的aspx中删除designer.cs文件中不存在的所有服务器控件(不同步的控件)。然后删除后面的代码以获得成功构建,保存所有内容并重新启动Visual Studio。

再试一次,它应该有用。

答案 2 :(得分:0)

在当前母版页中自己创建一个新的Default.Desiginer.cs文件,并创建一个这样的分部类。

public partial class Site_Master {

    /// <summary>
    /// form1 control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    protected global::System.Web.UI.HtmlControls.HtmlForm form1;

    /// <summary>
    /// ContentPlaceHolder1 control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    /// 
    protected global::System.Web.UI.WebControls.Label lblName;

    /// <summary>
    /// btnSearchEmp control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    /// 

    protected global::System.Web.UI.WebControls.Label lblBranch;

    /// <summary>
    /// btnSearchEmp control.
    /// </summary>
    /// <remarks>
    /// Auto-generated field.
    /// To modify move field declaration from designer file to code-behind file.
    /// </remarks>
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1;
}

并在您的主aspx文件中添加此行 &lt;%@ Master Language =“C#”AutoEventWireup =“true”CodeFile =“Site.master.cs”Inherits =“Site_Master”%&gt; Inherits =“Site_Master”是您创建的类名。然后,您将能够访问.cs文件中的Controles。