У нас есть модульная архитектура, в которой у нас есть несколько файлов представлений (cshtml) в отдельном проекте (библиотека классов). Как заставить работать подсветку синтаксиса и автозаполнение, если проект не является проектом MVC?
Обратите внимание, что в библиотеке классов есть контроллеры, представления, модели и т.д. У нее просто нет web.config, global.asax и т.д., Которые имел бы обычный проект mvc.
Intellisense работает для всего, кроме такой важной модели:
С MVC3 RTM, если вы наводите курсор мыши на Модель, вы можете получить лучшее сообщение об ошибке:
C:\...\Index.cshtml: среда выполнения ASP.NET ошибка: нет поставщика сборки зарегистрирован для продления '.Cshtml. Вы можете зарегистрировать один в & Lt; компиляции> & л; buildProviders> раздел в machine.config или web.config. Убедитесь, что есть BuildProviderAppliesToAttribute атрибут, который включает в себя значение "Сеть" или "Все".
Поэтому я добавил это:
<compilation>
<assemblies>
<add assembly="System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
<buildProviders>
<add
extension=".cshtml"
type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
</buildProviders>
</compilation>
Затем после добавления поставщика сборки появляется это сообщение об ошибке:
C:\...\Index.cshtml: среда выполнения ASP.NET ошибка: не удалось загрузить файл или сборку 'System.Web.WebPages.Razor' или один из его зависимости. Система не может найти указанный файл. (C:\...\machine.config строка 259)