在 Razor 视图中使用 "nameof" 运算符
Using "nameof" operator in Razor views
在我的 VS.NET 2015 开发机器上,使用 nameof
operator 的 Razor 视图非常棒。
部署到 Windows 服务器时,无法编译 CSHTML Razor 视图:
The name 'nameof' does not exist in the current context.
德语:
Der Name 'nameof' ist im aktuellen Kontext nicht vorhanden.
我安装了 .NET Framework 4.6 ("ASP.NET version: 4.6.81.0") 但没有成功。
很可能我遗漏了一些简单的东西。
不过,我真的是一窍不通。是 web.config 设置吗?或者别的什么?
我的问题:
如何在 CSHTML Razor 视图中启用 C# 6 功能(如 nameof
运算符)?
确保在您的文件 "web.config" 中存在节点 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=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
然后您将引用包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform
。
根据 this site,您需要在 Web.config 文件中引用 Roslyn 编译器,才能让 C# 6 功能在您的 razor 视图中工作。
只需安装 CodeDOM Providers for .NET Compiler NuGet package.
即可实现
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
在我的 VS.NET 2015 开发机器上,使用 nameof
operator 的 Razor 视图非常棒。
部署到 Windows 服务器时,无法编译 CSHTML Razor 视图:
The name 'nameof' does not exist in the current context.
德语:
Der Name 'nameof' ist im aktuellen Kontext nicht vorhanden.
我安装了 .NET Framework 4.6 ("ASP.NET version: 4.6.81.0") 但没有成功。
很可能我遗漏了一些简单的东西。
不过,我真的是一窍不通。是 web.config 设置吗?或者别的什么?
我的问题:
如何在 CSHTML Razor 视图中启用 C# 6 功能(如 nameof
运算符)?
确保在您的文件 "web.config" 中存在节点 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=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
然后您将引用包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform
。
根据 this site,您需要在 Web.config 文件中引用 Roslyn 编译器,才能让 C# 6 功能在您的 razor 视图中工作。
只需安装 CodeDOM Providers for .NET Compiler NuGet package.
即可实现PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform