2016-01-07 7 views
5
<input type="hidden" value="@ViewData["LoginProvider"]?.ToString() ?? null" /> 

ViewDataがnullの場合は、それはhalf-conversionを行い、隠しフィールドに値が含まれています:?.ToString() ?? nullC#6構文

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

なぜですか?

答えて

5

??には問題があります。左側の値は文字列で、右側の値はnullなので、正しい構文ではありません。また、割り当て操作が含まれているので、それらを括弧で囲む必要があります。

<input type="hidden" value="@(ViewData["LoginProvider"]?.ToString() ?? "")" /> 

あなたは次のことを試すことができます