Razor 视图中的 C# 6 语法
C# 6 syntax in Razor View
<input type="hidden" value="@ViewData["LoginProvider"]?.ToString() ?? null" />
当 ViewData
为 null 时,它生成一个 half-conversion
并且隐藏字段包含值:?.ToString() ?? null
我确定我已经启用了 C# 6:
<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">
<providerOption name="CompilerVersion" value="v4.0" />
</compiler>
为什么?
??有问题吗?运算符,左边的值为字符串,右边的值为空,因此,它不是正确的语法。另外,由于涉及赋值操作,需要用括号括起来。
您可以尝试以下方法:
<input type="hidden" value="@(ViewData["LoginProvider"]?.ToString() ?? "")" />
<input type="hidden" value="@ViewData["LoginProvider"]?.ToString() ?? null" />
当 ViewData
为 null 时,它生成一个 half-conversion
并且隐藏字段包含值:?.ToString() ?? null
我确定我已经启用了 C# 6:
<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">
<providerOption name="CompilerVersion" value="v4.0" />
</compiler>
为什么?
??有问题吗?运算符,左边的值为字符串,右边的值为空,因此,它不是正确的语法。另外,由于涉及赋值操作,需要用括号括起来。
您可以尝试以下方法:
<input type="hidden" value="@(ViewData["LoginProvider"]?.ToString() ?? "")" />