Отсутствие полей кода для серверных элементов управления в дизайне ASP.NET в веб-приложении

2

Я создал New Web Site в Visual Studio 2008, добавил страницу с элементом управления над ним:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form runat="server">
    <div>
        <asp:Label runat="server" ID="lblFoobar">Foobar</asp:Label>
    </div>
</form>
</body>
</html>

и сгенерированный класс с кодом-кодом получил новое поле lblFoobar.

Я могу получить доступ к нему в любой член как локальную переменную экземпляра. Все работает нормально.

Но когда я создал New ASP.NET Application, тот же подход вызывает ошибку:

The name 'lblFoobar' does not exist in the current context

Почему?

Теги:
code-behind

3 ответа

4
Лучший ответ

На вашей странице .aspx должно быть два файла. Один файл должен быть .aspx.designer.cs, а другой должен быть файлом codebehind, файл .aspx.cs.

Если вы щелкните правой кнопкой мыши файл aspx в проводнике решений и выберите "Просмотр файла Codegen", он должен открыть файл .aspx.designer.cs для вас. Ярлык должен быть объявлен там.

Если нет, тогда дизайнер еще раз не разобрал вашу разметку. Откройте файл .aspx в представлении дизайна, сделайте небольшое изменение, верните его и удалите, чтобы запустить конструктор снова.

1

Убедитесь, что вы не просто скопировали всю страницу со своего веб-сайта в свое веб-приложение, но создали новую страницу.

Убедитесь, что ваша .aspx-страница имеет правильную директиву @page, что-то близкое к:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
  • 0
    Кажется, что моя проблема заключается именно в прямом копировании страницы с сайта в приложение. Спасибо!
1

Ну, в вашем примере кода отсутствует самая важная вещь для страницы ASP.NET, которая является директивой @Page, которая сообщает механизму ASP.NET, какой класс должен создавать экземпляр для страницы, и если ему нужно динамически компилировать любую код.

  • 0
    Да спасибо Просто забыл добавить это. У меня есть, и это все еще не работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню