Ответ 1
Вы можете использовать пакет RazorGenerator, чтобы встраивать представления Razor в отдельную сборку. Вот шаги для выполнения этой работы:
- Установите расширение
Razor Generator
Visual Studio (Инструменты → Расширения и обновления...) - Создайте новое приложение ASP.NET MVC 4, используя пустой шаблон.
- Добавьте новый проект библиотеки классов в решение под названием
AreasLibrary
(вы также можете использовать шаблон проекта ASP.NET MVC для получения представлений Intellisense в Razor) - Установите
RazorGenerator.Mvc
NuGet в проектAreasLibrary
. -
Добавьте контроллер внутри проекта
AreasLibrary
(~/Areas/Admin/Controllers/HomeController.cs
):public class HomeController: Controller { public ActionResult Index() { return View(); } }
-
Добавьте соответствующий вид (
~/Areas/Admin/Views/Home/Index.cshtml
):@* Generator: MvcView *@ @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>View1</title> </head> <body> <div> Index view </div> </body> </html>
-
В свойствах представления установите
Custom Tool
вRazorGenerator
. -
Внутри библиотеки классов добавьте
~/Areas/AdminAreaRegistration.cs
:public class AdminAreaRegistration : AreaRegistration { public override string AreaName { get { return "Admin"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Admin_Default", "Admin/{action}/{id}", new { controller = "Home", action = "Index", id = "" } ); } }
-
Все, что осталось, это ссылка на библиотеку классов в основном приложении MVC.
Ссылка: http://blog.davidebbo.com/2011/06/precompile-your-mvc-views-using.html