Как решить проблему пространства имен с автоматически сгенерированным свойством Master, если MasterType установлен

после недель наличия этой проблемы я наконец решил попросить решение следующей проблемы:

На .aspx странице можно установить

<%@ MasterType VirtualPath="~/Mastername.master" %>

Это приводит к автоматическому сгенерированному свойству в .aspx.designer

public new Mastername Master {
    get {
        return ((Masternamee)(base.Master));
    }
}

Превосходные работы. Но если я сделаю изменения в .aspx файле, то свойство будет новое автоматический сгенерированный, и это похоже на следующее:

public new NAMESPACE1.Mastername Master {
            get {
                return ((NAMESPACE1.Mastername)(base.Master));
            }
        }

Компиляция не будет возможна впоследствии, потому что класс для MasterPage не может быть разрешен в данном пространстве имен. masterpage имеет NAMESPACE1 как пространство имен.

Каждый contentpage имеет тот же NAMESPACE1. Автоматически сгенерированное свойство пытается искать masterpage класс в NAMESPACE1. NAMESPACE1, который перестанет работать, из-за него, не существует. Конечно, я могу удалить первый NAMESPACE1. для создания приложения компилируемым снова но это просто сосет, чтобы сделать этот почти каждый раз, когда я вношу изменения в .aspx файле.

Существует ли способ избежать этой проблемы? Единственным путем я могу думать, должен проигнорировать автоматическое сгенерированное свойство и сделать явный бросок каждый раз, я хочу, имеют доступ к masterpage.

Править: Я использую Visual Studio Профессиональный SP1 2008 года.

5
задан citronas 4 January 2010 в 11:17
поделиться

2 ответа

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

0
ответ дан 15 December 2019 в 06:27
поделиться

По какой-то причине проектировщик считает, что главная страница определена в пространстве имён NAMESPACE1, поэтому посмотрите на определение (и код за ним) главной страницы, чтобы проверить, что пространство имён не было изменено (возможно, случайно).

Если ничего очевидного нет, то может понадобиться поиск во всех файлах (*.cs, *.aspx, *.master, ...) для NAMESPACE1.

(Здесь использование VCS поможет --- вы можете проверить историю изменений)

.
1
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: