Вложенные мастер-страницы в ASP.NET приводят к отсутствию элементов управления! - PullRequest
1 голос
/ 17 апреля 2011

У меня есть следующая иерархия:

MainMasterPage:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MainAdmin.master.cs" Inherits="MyWebsite.Admin.MainAdmin" %>

<form id="form1" runat="server">
<div id="MainMenu_Div" runat="server">
    <asp:ContentPlaceHolder ID="MainMenu" runat="server"/>
</div>

<div id="ContentArea_Div" runat="server">
    <asp:ContentPlaceHolder ID="ContentArea" runat="server"/>
</div>
</form>

TemplateMasterPage:

<%@ Master Language="C#" MasterPageFile="~/Admin/MasterPages/MainAdmin.Master" AutoEventWireup="true" CodeBehind="TemplateMasterPage.master.cs" Inherits="MyWebsite.Admin.TemplateMasterPage" %>

<asp:Content ID="ContentArea" ContentPlaceHolderID="ContentArea" runat="server">
    <div id="InputControls_Div" runat="server">
        <asp:ContentPlaceHolder ID="InputControls" runat="server" />
        <br />
        <asp:Button ID="Submit_Btn" runat="server" Text="Submit" 
            onclick="Submit_Btn_Click" />
    </div>


    <div id="AfterSubmission_Div" runat="server" visible="False">
    <asp:Button ID="AnotherBtn" runat="server" CssClass="linkLookingButton" 
        onclick="AnotherBtn_Click" />
    </div>
</asp:Content>

TemplateMasterPage (код сзади)

public partial class TemplateMasterPage : System.Web.UI.MasterPage
{
    public string BtnText
    {
        get { return AnotherBtn.Text; } //AnotherBtndoesn't exist in the current context
        set { AnotherBtn.Text = value; } //AnotherBtndoesn't exist in the current context
    }


    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Submit_Btn_Click(object sender, EventArgs e)
    {
        Submit_Btn.Enabled = false; //Submit_Btn doesn't exist in the current context

        InputControls_Div.Visible = false; //InputControls_Div doesn't exist in the current context
        AfterSubmission_Div.Visible = true; //AfterSubmission_Div doesn't exist in the current context
    }

Я прокомментировал ошибки в моем примере кода позади .. это используется для работы перед использованием вложенных главных страниц!

1 Ответ

1 голос
/ 17 апреля 2011

Только что построил сайт на основе ваших фрагментов кода.

Некоторые соображения по этому поводу:

  • Ваш класс назван TemplatePage в коде позади, но упоминается как TemplateMasterPage.
  • Там есть без контроля AnotherBtn.Есть только Submit_Btn.
  • Там есть без контроля Btn.Есть только Submit_Btn.
  • Я получаю нет ошибок на InputControls_Div или AfterSubmission_Div.

Так что все, что я могу сказать, что ваш компиляторправильно, и вы должны добавить недостающие кнопки или переименовать код, чтобы он успешно компилировался.

...