MVC Общая компоновка между проектами - PullRequest
0 голосов
/ 12 декабря 2018

Мне было интересно, есть ли способ поделиться файлом _layout.cshtml со всеми проектами.Таким образом, если я когда-либо хотел внести изменения в макет страницы наших компаний, я должен изменить его только в одном месте.Из исследований, которые я видел до сих пор, люди упоминали о возможности создания файла .dll.Также я не говорю об областях в MVC.Я хочу, чтобы все мои отдельные приложения ссылались на одну страницу общего макета, а не на каждое приложение со своим собственным макетом.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

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

Источником пакета Nuget является сам проект C # MVC с настраиваемой конфигурацией nuget, которая обеспечивает включение всего необходимого содержимого из проекта C # в распространяемый файл nuget.

ОтдельноИз-за простоты установки и разделения проблем другим большим преимуществом распространения через Nuget является то, что если вы вносите изменения в исходные файлы и обновляете пакет, каждое приложение, в котором установлен пакет, может выбрать, когда будет подходящее время для обновления допоследняя версия (если есть), поэтому у вас не возникает проблем, когда при изменении одной вещи вы должны изменить все, что зависит от нее одновременно (например, параметр «Добавить как ссылку» в ответе Slappywag пострадает от этой проблемы - если вы измените файл макета в этом сценарии, он немедленно распространится на все проекты, которые его используют, поэтому, если вы захотите внести какие-либо другие изменения в этот проект, вам придется иметь дело с любымПоследствия макета ЧанПрежде чем вы сможете опубликовать другие изменения, которые могут быть нежелательны / не удобны в то время.)

0 голосов
/ 12 декабря 2018

Способ, которым я достиг этого в прошлом, состоит в том, чтобы использовать «добавить как ссылку».

Во-первых, добавьте файлы макета в новую библиотеку, которую можно использовать в разных проектах.Затем в каждом из ваших проектов, для которого вы хотите использовать страницу макета, добавьте страницу макета в виде ссылки:

  1. В обозревателе решений щелкните правой кнопкой мыши папку, в которую вы хотите поместить файл макета.
  2. Нажмите «Добавить существующий» и выберите файл макета, который вы хотите использовать.
  3. Нажмите маленькую стрелку справа от кнопки «Добавить» и выберите «Добавить как ссылку» нападать.Ваш файл макета теперь будет на месте.
  4. В зависимости от того, как настроен ваш проект, вам может потребоваться выполнить шаги, описанные в этого ответа , чтобы гарантировать, что ваши связанные файлы будут скопированы во время сборки.Вы также можете убедиться, что скопированные файлы игнорируются вашим источником управления.
  5. Обновите ViewStart, чтобы использовать новый файл макета.

Любые изменения, которые вам нужныmake to layout может быть внесен в исходный файл, а при сборке изменения будут подобраны вашими проектами.

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