Страница с выделенным кодом не может «видеть» какие-либо элементы / элементы управления, объявленные на странице aspx - PullRequest
4 голосов
/ 14 февраля 2012

Вот моя страница Default.aspx (без лишних деталей):

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div id="login">
    <!-- a bunch of markup has been removed, so this html will appear wrong and not valid, but it actually is -->
    <table align="center" width="80%" cellpadding="0" cellspacing="0" class="loginBg">
        <tr>
            <td colspan="2"><img src="images/Login_top.jpg" /></td>
        </tr>
        <asp:Panel runat="server" ID="pnlLoginIn">
        <tr>
            <td style="padding-left:20px;">Username</td>
            <td style="padding-right:15px;" align="right"><asp:TextBox id="txtUsername" runat="server" /></td>
            <asp:RequiredFieldValidator runat="server" ID="rfvUserName" ErrorMessage="*" ControlToValidate="txtUsername" ValidationGroup="credentials" Display="Dynamic" />
        </tr>
        <tr>
            <td style="padding-left:20px;">Password</td>
            <td style="padding-right:15px;" align="right"><asp:TextBox ID="txtPassword" TextMode="Password" runat="server" /></td>
                <asp:RequiredFieldValidator runat="server" ID="rfvPassword" ErrorMessage="*" ControlToValidate="txtPassword" ValidationGroup="credentials" Display="Dynamic" />
        </tr>
        <!-- BUT THE PANEL IS HERE?! -->
        <asp:Panel ID="pnlInvalidCredentials" runat="server">
        <tr>
            <td colspan="2" align="center" style="color: Red;"><asp:Literal runat="server" ID="litInvalidCredentials" Text="Invalid Username or Password" />
            </td>
        </tr>
        </asp:Panel>
<!-- more code has been removed down here...I just left the block commented in where the pnlInvalidCredential lives -->
    </asp:Content>

Вот код (за исключением ненужных деталей):

namespace webapp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            (webapp.MasterPages.MasterPage)Page.Master).headerImage = "default";
            this.Master.headerImage = "default";

            if (!Page.IsPostBack)
            {
                this.pnlInvalidCredentials.Visible = false; // error is here
                this.BindPressRoomItem();
            }
        }
    }
}

Эта страница / code-behind является верхним уровнем, это не папка или что-то еще. Также этот проект является веб-приложением ASP.NET, которое заимствует код унаследованного проекта site . Я не добавлял «Существующие» ни в какие файлы, все файлы были «Добавить новые» для предотвращения проблем совместимости. Пробовал это , не сработало.

В выделенном фрагменте кода каждая попытка манипулировать элементами, объявленными на странице aspx, приводит к ошибке вроде:

«_ По умолчанию» не содержит определения для «pnlInvalidCredentials»

или

В этом контексте имя txtUsername не существует.

Ответы [ 4 ]

4 голосов
/ 14 февраля 2012

Поскольку я обновил эту страницу, вы удалили строку с директивой page в верхней части html-файла, но, похоже, вам, возможно, нужно включить пространство имен.

Попробуйте:

Inherits = "webapp._Default" вместо Inherits = "_ По умолчанию"

3 голосов
/ 14 февраля 2012

Попробуйте изменить атрибут «CodeBehind» на странице Default.aspx на «CodeFile».

1 голос
/ 14 февраля 2012

Если это веб-приложение, иногда случается, что файл * .designer.cs не обновляется с вашими последними изменениями.

Попробуйте это:

  • Снимите панель (просто обрежьте ее)
  • Сохранить
  • Отменить
  • Сохраните снова (это восстановит файл * .designer.cs)
  • Перестройка

Редактировать:

Другими возможностями, которые не смогут восстановить файл * .designer.cs, являются синтаксические ошибки, такие как отсутствующие конечные теги на страницах aspx.

0 голосов
/ 11 ноября 2013

У меня просто была такая же проблема. Что исправило это для меня было:

  • в моем коде файла, класс был определен как 'Public class'. Изменив это значение на «Частичный класс», затем нажав «Преобразовать в веб-приложение», можно восстановить файл «Дизайнер» и устранить проблему.
...