我在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
答案 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。