Ошибки компиляции на главной странице - PullRequest
2 голосов
/ 16 сентября 2009

У кого-нибудь есть советы по переносу главной страницы из одного решения / приложения в другое?

Я скопировал главную страницу из существующего решения в новое.

Исходное решение прекрасно работает и работает.

В новом решении страница вызывает ошибки сборки

В основном это «переменные», которые не объявлены.

Я закомментировал весь код сервера для страницы, за исключением двух очень простых операторов.

оператор 1 ссылается на элемент управления, который находится в исходной разметке страницы

pgLoginView.EnableViewState = True

Оператор 2 ссылается на элемент управления, который был недавно добавлен для целей тестирования

lblFrogs.Text = "sdfgsd"

Как будто компилятор не знает членов класса, которые должны быть сгенерированы из разметки. Я проверил, правильно ли установлен атрибут "Наследование" для файлов разметки. Когда я вызываю intellisense в редакторе кода, оба объекта (lblFrogs и pgLoginView) отображаются в списке и, в свою очередь, правильно перечисляют свои свойства и методы после нажатия клавиши «.»

.

Буду очень признателен за любую помощь или идеи, касающиеся этой проблемы. Я в конце своего остроумия - это было короткое путешествие.

Ответы [ 4 ]

1 голос
/ 16 сентября 2009

Вы должны проверить сгенерированный код конструктора для вашей главной страницы - хотя страница .aspx / .master используется во время выполнения для создания экземпляров всех элементов управления на вашей странице, во время компиляции вся информация о том, какие элементы управления присутствуют на разметке содержится в частичном классе в файле .designer.master:

public partial class Site1
{
    /// <summary>
    /// ContentPlaceHolder1 control.
    /// </summary>
    /// <remarks> Auto-generated field.</remarks>
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1;

    // Etc...
}

Если эта страница не содержит правильно сгенерированного кода, тогда я не совсем уверен, что предложить, кроме как поиграть с ним, или если вы действительно застряли, объявите элементы управления самостоятельно - у меня была эта проблема раньше но я не знаю так много о том, как генерируется код конструктора.

Если это не проблема, то уверены ли вы, что Visual Studio не решила переименовать какой-либо из элементов управления?

0 голосов
/ 17 сентября 2009

Я наконец нашел источник моего горя с объектом Profile.

Во-первых, функциональность профиля доступна только в проекте типа веб-сайта. Однако, поскольку проект уже был преобразован в тип веб-сайта для решения первой проблемы со ссылками на элементы страницы, почему же объект профиля не был доступен?

Ответ заключается в том, что преобразование не изменяет разметку страницы. Расположение кода позади должно быть указано с помощью «CodeFile», а атрибут Inherits должен иметь начальную информацию о пространстве имен, обрезанную. Пример:

0 голосов
/ 17 сентября 2009

Что-то определенно пришло в бешенство с компиляцией для этой страницы.

Я не могу сослаться на свойство профиля. Это статья от Дино Эспозито Говорит, что объект Profile добавляется на страницу как часть процесса компиляции следующим образом:

Защищенный профиль ProfileCommon { получить { return ((ProfileCommon) (Context.Profile)); }}

Когда я выполняю поиск в файлах для ProfileCommon в рабочем проекте, я получаю много результатов из временных файлов asp.net. В неработающем проекте ProfileCommon не встречается ни в одном из файлов.

0 голосов
/ 17 сентября 2009

Кристиан-Хейтер Кажется, на правильном пути. Я преобразовал проект в проект веб-сайта, и проблема исчезла.

Может показаться, что первопричина может оставаться загадкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...