2017-07-20 12 views
0

私はint?というタイプのプロパティを持っていますが、値は1,2,3またはnullです。MVC6のヌル値のラジオボタンを確認してください

これらの選択肢を表す4つのラジオボタンをレンダリングします。私はそれが部分的にしか機能し、null値のために、このような何かを行う場合

<input type="radio" asp-for="Score" value="3" class="form-control" /> 

しかし、:値1の場合、このような2と3何かが素晴らしい作品

<input type="radio" asp-for="Score" value="" class="form-control" /> 

私は、フォームを送信するとモデル・バインディングはnullをプロパティー値に期待どおりに入れますが、ScoreがNULLの場合はフォームがレンダリングされ、の場合はラジオ・ボタンのがチェックされます。

私は0のようないくつかの "null substitute value"を使うことができると知っていますが、コントローラの中にif (x == 0) x = null;というコードをたくさん書いてみる前に、この状況を扱うよりエレガントな方法があるかどうかを知りたいと思います。あなたはこのように

<input type="radio" asp-for="Score" value="" class="form-control" 
    @(Model.Score == null ? "checked='checked'" : "")/> 

にコードの2番目の行を変更することができます

答えて

0

Model.Score == null場合、フォームがレンダリングされたときに、このラジオがチェックされます。

+0

すぐに胡玮文にお返事いただきありがとうございますが、私はすでにこれを試しました。奇妙なことが起きているのは、タグヘルパーを扱うときに属性だけがテキストではないということです。事実、ひげそりコードとそれに続く属性の出力はHTMLに出力されません。 – Darren

関連する問題