Ren*_*bis 8 asp.net asp.net-mvc razor asp.net-mvc-5 c#-6.0
当前的项目:
我的剃刀代码:
@if(Session["Type"]?.ToString() == "Insurance") {
<text>policy of insurance</text>
} else if(Session["Type"]?.ToString() == "Warranty") {
<text>policy of warranty</text>
} else {
<text>protection policy</text>
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 明确地将此标记为错误,
功能“空传播运算符”在 C# 5 中不可用。请使用语言版本 6 或更高版本。
和Visual Studio是明确使用C#6:
当我尝试运行页面本身时,出现错误:
CS1525:无效的表达式术语“.”
这表明它明确地在问号后面的句点之后。
这个项目明确作为一个 C# 6 项目开始,我很困惑为什么它重新回到 C#5。
另一个奇怪的问题:这在调试和我的本地测试设置中都运行得很好(我发布到文件系统,使用本地 IIS 查看),但是当我上传到服务器(它有很多其他 C#6网站)它废话了。这是我遇到的第一个真正引发如此严重错误的剃刀方面的怪癖。
小智 12
我遇到了类似的问题,发现我的 Web.config 文件中缺少以下内容:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /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.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2008 次 |
最近记录: |