Как обновить веб-сайт, использующий файлы #include, до веб-приложения - PullRequest
0 голосов
/ 20 октября 2008

Я недавно унаследовал довольно большой веб-сайт. Проект настроен как веб-сайт в Visual studio, а не как веб-приложение. По ряду причин я хотел бы преобразовать его в веб-приложение.

Я начал преобразовывать приложение, используя следующие инструкции Скотта Гу: Миграция проекта веб-сайта VS 2005 в проект веб-приложения VS 2005 .

Во время преобразования я обнаружил, что на этом веб-сайте используется множество директив #include для включения других файлов .aspx. Основная проблема заключается в том, что в настоящее время каждый файл code-behind напрямую вызывает элементы управления (используя this.) Со страниц, которые он включает.

Такое поведение, по-видимому, допускается тем, что компилятор динамически создает файлы .designer в памяти во время компиляции.

Проблема в том, что, поскольку я конвертирую приложение в веб-приложение, я создаю физические версии файлов .designer. Теперь тот же вызов элементов управления на включенных страницах (используя this.) Больше не работает.

Я попробовал несколько вещей, чтобы попытаться исправить это:

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

Во-вторых, я попытался просто переименовать включенные файлы .aspx в .inc, но у меня все еще есть проблема с главной страницей, так как я больше не могу получить доступ к элементам управления, как раньше.

Кто-нибудь когда-либо делал это раньше, и есть какие-либо мысли о том, как действовать без изменения всей структуры веб-сайта?

edit: я решил не проводить конвертацию в настоящее время просто потому, что любые выгоды не будут стоить хлопот. Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 20 октября 2008
  • Вам следует преобразовать включенные файлы aspx в классы, если они использовались в качестве библиотек кода в старой ситуации
  • Вы должны конвертировать файлы aspx, которые содержат элементы управления html, server и / или HTML, в usercontrols (файлы ascx)

Это должно быть хорошим стартером на данный момент. Позже вы можете сделать рефакторинг на свой вкус.

Надеюсь, это поможет.

0 голосов
/ 20 октября 2008

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

ASP.Net будет не do # include.

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