7

このようにRadioButtonForを使用しました

@Html.RadioButtonFor(m => m.Content, Model.Content, new { @name = "rb", @class = "answer-radio", @id = "answer-" + Model.Counter,@checked = "false" })
    @Html.Label(Model.Content, new { @for = "answer-" + Model.Counter })
    @Html.HiddenFor(m => m.Content)

しかし、このラジオボタンは「チェック」されています。どうすれば無効にできますか?

4

2 に答える 2

5

本当にラジオボタンが必要ですか? あなたはチェックボックスの後にいるようです...

ブール値の場合、次のように 2 つのラジオボタンを設定します。

@Html.RadioButtonFor(m => m.Content, true, new { @id = "rb1" })
@Html.RadioButtonFor(m => m.Content, false, new { @id = "rb2" })

html ヘルパーは、どれをチェックするかを判断します。が別のタイプの場合Model.Content、ラジオボタンに別の値を使用すると、MVC はどれをチェックするかを判断します。

編集:

実際には、それよりもさらに簡単です。Html ヘルパーRadioButtonForメソッドを使用すると、Model プロパティに一致する値が見つかった場合にラジオボタンがチェックされます。したがって、RadioButton が常にModel プロパティと同じ値を持つように指定したため、常にチェックされます (フォームにポストされる値です)。

したがって、bool のデフォルトを false にして、チェックした場合にのみ true を返すようにしたい場合は、次のようにします。

@Html.RadioButtonFor(m => m.Content, true, new { @id = "rb1" })

whereContentはもともと false に設定されています。

他の値タイプでも同様に実行できます。たとえば、Content が文字列で、最初は null に設定されている場合、これ"RadioButtonChecked"はラジオ ボタンがチェックされている場合にのみポストバックされます。それ以外の場合は null:

@Html.RadioButtonFor(m => m.Content, "RadioButtonChecked", new { @id = "rb1" })
于 2013-06-20T22:06:31.190 に答える
0

属性リストに「checked」を追加すると、何があってもチェックされます。モデルの値が null または false であることを確認します。

于 2013-06-20T21:38:14.547 に答える