11

tengo un problema que parece haber sido reportados aquí:Razor Advertencia del compilador/Errores - ASP.NET MVC 4

Need razor view engine auto-complete to work in a class library?

Mi problema es el siguiente aviso:

G:\Accountable\Accountable\Views\LedgerUser\EditorTemplates\LedgerServiceViewModel.cshtml: ASP.NET runtime error: There is no build provider registered for the extension '.cshtml'. You can register one in the section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.

Este el problema es evidente en todos mis puntos de vista. Imágenes de muestra a continuación.

enter image description here

enter image description here

enter image description here

Ahora todos los mensajes y referencias en línea que he encontrado está haciendo referencia a la adición de varios Web.config (como se menciona en el post anterior) opciones, pero este doesn Parece que no funciona, ya que tengo estas configuraciones predeterminadas en el proyecto. Aquí están mis Configs Web:

Main Web.config

View root Web Config

creo que este tema tal vez mientras im también conseguir los siguientes errores de compilación en las Vistas:

The name 'Html' does not exist in the current context

enter image description here

Lo estoy haciendo mal?

+0

Casi duplicado de este: http: // stackoverflow.com/questions/4158573/need-razor-view-engine-auto-complete-to-work-in-a-class-library –

+0

Hola, David. Gracias por el comentario. Sí, hice referencia a eso en la publicación anterior. No veo ninguna diferencia con los predeterminados creados en el Proyecto. – garfbradaz

Respuesta

21

Arrrgghhh me había perdido lo siguiente desde la raíz 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> 

Esto permitió fijar el error y me permitió usar Intellisense dentro de la vista.

+1

Realmente no sé por qué esto lo solucionó, pero lo hizo. Estaba funcionando bien y luego invertí un trozo muy pequeño en un archivo en git y todo mi proyecto estalló. Esto pareció arreglarlo. –

+1

Esto funcionó para mvc5, simplemente cambie la versión a '3.0.0.0' y la clave pública a la de su web.config (está al final del archivo). – VSG24

+0

en MVC 5 actualizó todas las versiones y claves pero el error todavía está aquí. –

3

volver a poner las siguientes líneas en Web.config raíz fijos:

<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> 
2

lo tengo trabajando con sólo descargar y cargar el proyecto. Todos los espacios de nombres de arriba ya estaban allí en la raíz web.config y todavía estaba recibiendo este problema.

2

Eliminar los archivos temporales de asp.net framework funciona para mí.

Detener IIS y eliminar todo bajo esta carpeta:

C:\Windows\Microsoft.NET\Framework64\[framework version]\Temporary ASP.NET Files

continuación, reinicie IIS. Bam!

+1

Comenzando a recibir este error sin ningún motivo aparente: mi proyecto estaba funcionando desde hace años. Esto funcionó para mí, gracias! – Jesse

0

Intenté reiniciar IIS, eliminé los archivos temporales de ASP.NET y cambié la etiqueta de compilación en el archivo de configuración web. Ninguno de ellos trabaja para mí.

Solucioné el problema eliminando y agregando System.Web.MVC al proyecto.

En mi caso, la sintaxis Razor se resalta en rojo.