c# .net asp.net-mvc razor c#-6.0

c# - Usar el operador "nombre de" en las vistas Razor



.net asp.net-mvc (2)

En mi máquina de desarrollo VS.NET 2015, las vistas Razor que usan el nameof operador funcionan como un amuleto.

Al implementar en un servidor de Windows, no compila las vistas CSHTML Razor:

El nombre ''nameof'' no existe en el contexto actual.

En alemán:

Der Name ''nameof'' ist im aktuellen Kontext nicht vorhanden.

Instalé .NET Framework 4.6 ("ASP.NET version: 4.6.81.0") sin éxito.

Lo más probable es que me esté perdiendo algo simple.

Aún así, estoy realmente desorientado. ¿Es una configuración web.config? ¿O algo mas?

Mi pregunta:

¿Cómo habilitar las características de C # 6 (como el nameof operador) en CSHTML Razor views?


Asegúrese de que en su archivo "web.config" exista el nodo system.codedom .

<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=/&quot;Web/&quot; /optionInfer+"/> </compilers> </system.codedom>

Y haría referencia al paquete Microsoft.CodeDom.Providers.DotNetCompilerPlatform .


Según este sitio , debe hacer referencia al compilador de Roslyn en su archivo Web.config para obtener las características de C # 6 para que funcionen en sus vistas de afeitar.

Esto se puede lograr simplemente instalando los proveedores de CodeDOM para el paquete .NET Compiler NuGet .

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform