HTML ビューに「はい」または「いいえ」として表示したいデータベースにビット フィールドがあります。三項(?:) 演算子を使用してこれを行うにはどうすればよいですか?
これが私が持っているものですが、すべてのレコードに対して「いいえ」と表示されます。
<%= Html.Encode( Convert.ToString(item.IsValid) == "True" ? "Yes" : "No")%>
HTML ビューに「はい」または「いいえ」として表示したいデータベースにビット フィールドがあります。三項(?:) 演算子を使用してこれを行うにはどうすればよいですか?
これが私が持っているものですが、すべてのレコードに対して「いいえ」と表示されます。
<%= Html.Encode( Convert.ToString(item.IsValid) == "True" ? "Yes" : "No")%>
これを修正するには 2 つの方法があります。
1) IsValid がすでにブール値であるように見えます。値を取得するだけです
<%= item.IsValid ? "Yes" : "No"%>
2) どうしても変換したい場合は、Equals を使用して StringComparison.InvariantCultureIgnoreCase フラグと比較してください。
<%= Convert.ToString(item.IsValid).Equals("True", StringComparison.InvariantCultureIgnoreCase) ? "Yes" : "No"%>
またはさらに簡単に -
<%= Html.Encode(item.IsValid ? "Yes" : "No") %>
通常、以下を使用できます:
<%: item.IsValid ? "Yes" : "No" %>
これで問題が解決します。
なぜ文字列に変換するのですか?IsValid
これはブール値であると仮定して動作するはずです:
<%= Html.Encode(item.IsValid) == true ? "Yes" : "No")%>
それが文字列の場合は、次のようなものが必要です。
<%= Html.Encode(item.IsValid.ToLower() == "true" ? "Yes" : "No")%>