4

ビューモデルにnull可能なブール値プロパティがあります:

public class ViewModel
{
    [Required(ErrorMessage="Please select yes or no")]
    public bool? Completed { get; set; }
}

このプロパティのフォーム コントロールを、ページの読み込み時にどちらのオプションも最初に選択されていないラジオ ボタンのペアにする必要があります。これは、ユーザーが意識的にいずれかのオプションをクリックするようにするためです (無視してデフォルトのままにしやすいチェックボックスではなく)。

ブール値のプロパティは null 可能である必要があります。そうしないと、ページの読み込み時に「NO」オプションが既にチェックされているためです。ただし、ビューで次のコードを使用します。

<label>@Html.RadioButton("Completed", Model.Completed) YES</label>
<label>@Html.RadioButton("Completed", !Model.Completed) NO</label>

ヘルパーがバインドしようとしているモデル プロパティが null であるため、実行時エラーが発生します。

この最初は選択されていない状態をどのように達成できますか?

4

1 に答える 1

6

このようにしてみてください:

<label>@Html.RadioButton("Completed", "true") YES</label>
<label>@Html.RadioButton("Completed", "false") NO</label>

しかし、既にビュー モデルがあるので、強く型付けされたバージョンのヘルパーを使用する方がはるかに優れています。

<label>@Html.RadioButtonFor(x => x.Completed, "true") YES</label>
<label>@Html.RadioButtonFor(x => x.Completed, "false") NO</label>
于 2013-06-21T13:09:05.593 に答える