Палец вверх 2
Перевод
Перевод

Почему _Layout.cshtml по умолчанию помещается в ~ / Views / Shared folder?

Почему _Layout.cshtml помещается в ~/Views/Shared folder?

Я задаю этот вопрос, потому что я помещаю этот файл в папку ~/Views и изменяю значение Layout в _ViewStart.cshtml

@{
    Layout = "~/views/_Layout.cshtml";
}

и это все еще работает.

Для специального назначения _Layout.cshtml помещается в ~/Views/Shared folder?

asp.net-mvc-4
задан amirhosseinab 31 янв. 2013 г., 23:23:55
источник

3 ответа

Решение 1
Перевод
Перевод

Когда на страницу макета ссылается полный путь, вы правы, что не имеет значения, где она находится, если она находится где-то в папке ~ / Views.

Одна из ситуаций, где это имеет значение (но часто это не так), - это когда в действии вашего контроллера вы вызываете перегрузку «View ()», которая позволяет вам указать альтернативную (главную) страницу макета. Если это так, и указанное имя является «простым» именем, таким как «MobileLayout», в качестве пути поиска по умолчанию будет сначала папка представления текущего контроллера, а затем папка Shared views.

Еще одна гораздо более простая причина заключается в том, что это «имеет смысл» с точки зрения соглашений, независимо от каких-либо технических требований.

ответ дан Eilon 1 февр. 2013 г., 0:05:15
источник
Палец вверх 1
Перевод
Перевод

По соглашению, папка /views/shared предназначена для представлений, которые, в общем-то , используются разными контроллерами, такими как макеты и многократно используемые части. Как вы уже видели, нет причин, по которым вы не можете размещать макеты там, где хотите, если вы ссылаетесь на них должным образом.

ответ дан Andrew Barber 1 февр. 2013 г., 0:03:53
источник
Палец вверх 1
Перевод
Перевод
  • Если вы поместите _Layout.cshtml в папку Views вам придется явно указать его расширение в Layout="_Layout.cshtml" .

  • Если вы поместите _Layout.cshtml в _Layout.cshtml Views/Shared или Views/XXX вы НЕ должны явно указывать расширение файла в Layout="_Layout" .

ответ дан Artificial Stupidity 24 окт. 2016 г., 13:15:54
источник