Using “nameof” operator in Razor views

人走茶凉 提交于 2019-12-04 15:25:54

问题


On my VS.NET 2015 development machine, the Razor views that use the nameof operator work like a charm.

When deploying to a Windows server, it fails to compile the CSHTML Razor views:

The name 'nameof' does not exist in the current context.

In German:

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

I've installed .NET Framework 4.6 ("ASP.NET version: 4.6.81.0") with no success.

Most likely I'm missing something plain simple.

Still, I'm really clueless. Is it a web.config setting? Or something else?

My question:

How to enable C# 6 features (like the nameof operator) in CSHTML Razor views?


回答1:


Make sure in your file "web.config" the node system.codedom exists.

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

And you'd reference the package Microsoft.CodeDom.Providers.DotNetCompilerPlatform.




回答2:


According to this site, you need to reference the Roslyn compiler in your Web.config file to get C# 6 features to work in your razor views.

This can be achieved simply by installing the CodeDOM Providers for .NET Compiler NuGet package.

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


来源:https://stackoverflow.com/questions/33822854/using-nameof-operator-in-razor-views

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!