2010-06-17 3 views
1

Моя группа работает над новым веб-приложением и рассматривает возможность использования MVC. Тем не менее, есть члены, которые предпочли бы включать страницы, чем использовать мастер-страницы. Можно ли это сделать в ASP.NET MVC? В течение небольшого количества времени, которое я ткнул с помощью MVC, мне еще не удалось выяснить, как это можно сделать.Требует ли ASP.NET MVC использовать мастер-страницы?

+2

Да, вы можете использовать его без мастер-страниц, но вы должны действительно обучить этого члена команды преимуществам мастер-страниц (более естественно/легко думать об абстракции) или уволить их за некомпетентность. – R0MANARMY

+0

Отвращение к ним в основном связано с тем фактом, что, когда основные страницы были впервые введены, были некоторые проблемы, с которыми сталкивались несколько членов команды при их использовании (не уверены в деталях). Скорее всего, они исправлены к настоящему времени, но они скорее остаются с тем, что они считают стабильными. –

+0

Когда это было? LOT изменился с момента создания v1. Я слышал жалобы от «главных страниц и элементов управления, генерирующих несовместимый HTML» (BS - они генерируют то, что вы им рассказываете), чтобы «страница получает визуализацию 10 раз за запрос!» (BS, снова.) Тем не менее, все мы (включая меня) любят держаться за наши защитные одеяла. –

ответ

6

Почему предпочтение?

Использование обоих в прошлом, Мастер-страницы намного проще в использовании. Вам просто нужно преодолеть (очень маленькую) кривую обучения.

ASP.NET MVC не заставит вас сделать либо один, хотя ...

Если вам нравится метод Include, то вы, вероятно, чувствуют себя наиболее комфортно, используя частичный вид на обеспечить такую ​​же функциональность. Вы просто добавили частичные представления к каждой странице, а не добавляли другую страницу.

+0

Спасибо, за быстрое разъяснение и предложение, примут через десять минут –

1

Нет. Это никоим образом не заставляет вас.

1

Вы должны действительно избегать серверной части с чем-то более новым, чем классический ASP. Их сложнее отлаживать, IIS с трудом находит правильные номера строк, когда есть проблема, и т. Д. Кроме того, я не смотрел порядок, в котором SSI обрабатываются в конвейере запроса - они могут вообще не работать с ASP.NET.

Если вы переезжаете в MVC, используйте вместо этого RenderPartial() или RenderAction(). Они выполняют, по существу, ту же функцию, что и серверная, но более соответствуют духу структуры и предоставляют некоторые дополнительные преимущества, такие как передача моделей без объявления глобальной переменной (чего также следует избегать, и я не уверен, что это возможно даже при правилах области .NET).

И нет, мастер-страницы не требуются, но вы действительно должны их использовать. Использование включает в себя создание макета страницы, но только если вы этого не сделаете и не будете нуждаться в радикальном изменении макета вашего сайта в любой момент в будущем. Теперь я нахожусь в этой лодке с классическим ASP-приложением на 350 тыс. Строк, в котором используется очень хорошо структурированный код и #includes, чтобы создать макет страницы. Это было лучшее решение, доступное в то время, но это вызывает у меня много головных болей (10+ лет спустя).

С главной страницей вы можете перемещать блоки ContentPlaceHolder в любом месте, а с #includes окончательная страница действительно определяет формат по порядку размещения. Это также упрощает создание мобильной версии вашего сайта - вы можете создать главную страницу для мобильных устройств и использовать одни и те же виды контента.

0

Я предпочел бы перейти на мастер-страницы из-за простоты использования и встроенной поддержки в MVC для этого.

Если вы хотите узнать больше об этом, ознакомьтесь с этим уроком: Creating Page Layouts with View Master Pages.

Grz, Kris.

1

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

Смежные вопросы