Вы должны действительно избегать включений на стороне сервера с чем-то более новым, чем классический ASP. Их сложнее отлаживать, IIS с трудом находит правильные номера строк при возникновении проблемы и т. Д. Кроме того, я не рассматривал порядок обработки SSI в конвейере запросов - они могут вообще не работать с ASP.NET.
Если вы переходите в MVC, используйте RenderPartial()
или RenderAction()
. По сути, они выполняют ту же функцию, что и серверные включения, но в большей степени соответствуют духу структуры и предоставляют некоторые дополнительные преимущества, такие как передача моделей без объявления глобальной переменной (чего также следует избегать, и я не уверен, возможно ли это даже по правилам области видимости .NET).
И, нет, главные страницы не требуются, но вы действительно должны их использовать. Использование include для создания макета вашей страницы работает, но только если вы этого не сделаете и вам не понадобится радикально изменить макет вашего сайта в любой момент в будущем. Сейчас я нахожусь в этой лодке с классическим ASP-приложением в 350 тысяч строк, которое использует очень хорошо структурированный код и #includes для создания макета страницы. Это было лучшее решение, доступное в то время, но сейчас у меня много головной боли (спустя 10 с лишним лет).
С главной страницей вы можете перемещать свои блоки ContentPlaceHolder куда угодно, тогда как с #includes
последняя страница действительно определяет формат в порядке, в котором размещаются включения. Это также упрощает создание мобильной версии вашего сайта - вы можете создать главную страницу для мобильного телефона и использовать те же представления контента.