0

マウス オーバー式があるときに、冗長な条件付き 3 項式の使用に関する Visual Studio メッセージが表示されるのはなぜですか (また、式 "true : false" の不透明度が低くなります)。必要なものを取得するために何とか少ないコードを記述できることを教えてくれますか (ViewBag.CMSClientStatus が「Действующий」と等しい場合は、ラジオを確認してください)。

@Html.RadioButton("ClientStatus", "Real",  ViewBag.CMSClientStatus == "Действующий" ? true : false, new { @readonly = true })

スクリーンショット

4

3 に答える 3

2

ViewBag.CMSClientStatus == "Действующий"はすでにtrueまたはを返しますfalse。Visual Studio が示唆するように、三項演算子はロジックに何も追加しません。

于 2015-06-30T18:18:01.047 に答える
1

それ以外の:

ViewBag.CMSClientStatus == "Действующий" ? true : false

使用するだけです:

ViewBag.CMSClientStatus == "Действующий"

等値演算子 ( ) は既にorを==返しているため、条件演算子は必要ありません。truefalse

于 2015-06-30T18:17:52.313 に答える
0

前の2つの回答で提案されたとおりに書きました。しかし、「拡張メソッドを動的にディスパッチできません」というエラーが発生しました。

スクリーンショット

答えはここで見つかりました。動的型をブール型にキャストする必要があります。私の最終的なエントリは次のとおりです。

@Html.RadioButton("ClientStatus", "Потенциальный",  (bool) (ViewBag.CMSClientStatus == "Потенциальный"), new { @readonly = true })   
于 2015-07-01T08:23:06.283 に答える