Предупреждение/ошибки компилятора Razor - ASP.NET MVC 4
У меня есть проблема, которая, как представляется, была представлена здесь:
Нужно ли автозавершение механизма просмотра бритвы работать в библиотеке классов?
Моя проблема следующая Предупреждение:
G:\подотчетного\подотчетного\Views\LedgerUser\EditorTemplates\LedgerServiceViewModel.cshtml: Ошибка выполнения ASP.NET: нет поставщика сборки, зарегистрированного для extension '.cshtml'. Вы можете зарегистрировать его в в файле machine.config или web.config. Убедитесь, что имеет атрибут BuildProviderAppliesToAttribute, который включает значение "Веб" или "Все".
Эта проблема очевидна во всех моих взглядах. Образцы изображений ниже.
![enter image description here]()
![enter image description here]()
![enter image description here]()
Теперь все сообщения и ссылки, которые я нашел, ссылаются на добавление различных параметров Web.config(как упоминалось в предыдущем сообщении), но это, похоже, не работает, поскольку у меня эти конфигурации дефолтны в проекте. Вот мои веб-конфигурации:
Main Web.config
Просмотр корневой веб-конфигурации
Я думаю, что эта проблема может быть в то время как im также получает следующие ошибки компилятора в представлениях:
Имя "Html" не существует в текущем контексте
![enter image description here]()
Что я делаю неправильно?
Ответы
Ответ 1
Аrrgghhh я пропустил следующее из ROOT Web.config:
<compilation debug="true" targetFramework="4.0">
<!-- New -->
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
Это позволило устранить ошибку и разрешить мне использовать Intellisense в представлении.
Ответ 2
Возврат следующих строк в корневой Web.config исправлено:
<system.web>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
Ответ 3
Я работал, просто выгружая и перезагружая проект. Все пространства имен выше уже были в корневом web.config, и я все еще получал эту проблему.
Ответ 4
Удаление временных файлов фреймворка asp.net работает для меня.
Остановите IIS и удалите все в этой папке:
C:\Windows\Microsoft.NET\Framework64\[версия рамки]\Временные файлы ASP.NET
Затем перезапустите IIS. Бам!
Ответ 5
Я попытался перезапустить IIS, удалить временные файлы ASP.NET и изменить тег компиляции в файле веб-конфигурации. Никто из них не работает для меня.
Я исправил проблему, удалив и добавив System.Web.MVC в проект.
В моем случае синтаксис Razor выделяется красным цветом.