Вопрос по telerik-mvc, asp.net-mvc, asp.net-mvc-4, razor, layout – Как использовать общий макет и стили в нескольких приложениях Asp.net MVC

6

У меня есть визуальное студийное решение с несколькими британскими проектами Telerik MVC4, которые выглядят одинаково. Я не хочу, чтобы во всех проектах MVC4 копировались одинаковые макеты, CSS / стили, изображения и js-файлы. Каков наилучший способ добиться этого повторного использования? Я попытался создать виртуальный каталог проекта commonUI и попытался обратиться к _layout.cshtml, используяHTTP: // локальный /... в _ViewStart.cshtml, но он пожаловался, сказав & quot; http: /localhost/MyMvcApp/Views/Shared/_Layout.cshtml' не является действительным виртуальным путем. & quot;

Пожалуйста помоги!

Ваш Ответ

1   ответ
10

1) Посмотрите на области, может быть, вместо того, чтобы иметь отдельные проекты, это действительно разные компоненты одной и той же системы (администратор и т. Д.)?

2) Используйте добавить существующий элемент в Visual Studio и добавлять элементы по ссылкам. Это все еще дублирует их для развертывания, но вы можете сохранить один источник.

3) Подумайте об этом, создав собственный пакет nuget. Таким образом, хотя вы бы скопировали CSS и изображения, вы бы упаковали его и могли обновить пакет по мере необходимости. Преимущество состоит в том, что вы можете обновить один проект, не испытывая при этом необходимость повторного тестирования другого (если они раздельные и 1) не применяется).

4) Я нахожу это более уродливым, чем остальные, но я полагаю, что в IIS вы можете отображать в папках, чтобы вы могли ссылаться на эти файлы по ссылкам в вашем проекте, а не развертывать их там и затем отображать в соответствующую папку во время развертывания, используя единственный исходный путь.

Я не знаю, как можно разделить путь приложения.

EDIT:

Я никогда не пробовал этого раньше, поэтому не могу поручиться за это, но, возможно, скомпилируйте ваши общие элементы в отдельном проекте, а затем сослаться на DLL во всех других проектах.

Ссылка, которую я нашел, такова, но, опять же, я не подтвердил, что это работает, просто думаю, что это может быть жизнеспособным путем для изучения:

http://www.chrisvandesteeg.nl/2010/11/22/embedding-pre-compiled-razor-views-in-your-dll/

Я не могу использовать области, потому что мои веб-проекты на самом деле представляют собой 3 разных проекта, а не компоненты (администратор и т. Д.), Они просто используют общие сущности и базу данных. Они предназначены для использования различными группами пользователей. 2) Все еще дублирует их при развертывании, как вы упомянули. Amit
Спасибо Мирко. Я попробую завтра. В последнее время занялся другими делами. Amit
Амит, у меня нет времени, чтобы попробовать это в данный момент, но если вы решительно настроены заставить это работать, возможно, попробуйте мой подход к редактированию.
Мне придется больше изучить варианты 3 и 4. В любом случае, спасибо. Amit
Я знаю, что обычно мне нравится подтверждать вещи перед публикацией, но это не было быстрой проверкой, поэтому я ленился и просто послал указатель :)

Похожие вопросы