0

私はこのようなものを持っています:

public class MyClass
{
    public int Id {get;set;}
    public bool First {get;set;}
    public bool Second {get;set;}
    public bool Third {get;set;}
}

今、私はこれを表示する何かを生成したい:

First - [checkbox] 
Second - [checkbox] 
Third - [checkbox]
[Submit]

そして、それらのチェックボックスでそれらのプロパティから 1 つの項目のみを選択したいのですが、どうすればよいですか?

編集:申し訳ありませんが、チェックボックスは本当に必要ありません。そのためのラジオボタンが必要です。誰かがラジオボタンを使用して私の問題を解決する方法を示すサンプルコードを持っていれば、私は感謝しています.

4

4 に答える 4

2

私があなたの質問を正しく理解していれば、項目 (1 番目、2 番目、または 3 番目) のうちの 1 つだけを選択してください。この動作には、ラジオボタンを使用します。チェックボックスを使用すると、他の項目が選択されているかどうかに関係なく、各項目を選択できます。ラジオボタンでは、一度に 1 つの項目のみを選択できます。

于 2012-12-26T18:47:42.027 に答える
2

チェックボックスに関する質問に答えるために:

@Html.LabelFor(m => m.First, "First -") @Html.CheckBoxFor(m => m.First)
@Html.LabelFor(m => m.First, "Second -") @Html.CheckBoxFor(m => m.Second)
@Html.LabelFor(m => m.First, "Third -") @Html.CheckBoxFor(m => m.Third)

テキストとチェックボックスをラップして、ユーザーがラベルをクリックしてチェックボックスを選択/選択解除できるようにします。または、チェックボックスとテキストをラベルで囲む代わりに、単にLabelFor.

今...ユーザーがそれらの1つだけをチェックする必要があることを達成するには、そのためにRadioButtonsを使用してください。

ここでより詳細な回答を参照してください: https://stackoverflow.com/a/5621200/7720

于 2012-12-26T18:48:24.820 に答える
1

RadioButtonFor を使用します。モデルに必要なプロパティは 1 つだけです。

モデル:

public byte MyOption { get; set; }

意見:

@Html.RadioButtonFor(m => model.MyOption, 1) 1
@Html.RadioButtonFor(m => model.MyOption, 2) 2
@Html.RadioButtonFor(m => model.MyOption, 3) 3
于 2012-12-26T19:20:09.640 に答える
1

「CheckBoxFor」Html ヘルパーを使用して、各プロパティにバインドするだけです。次に、投稿するときに、モデルで TryUpdateModel() を呼び出すことができます。

@using (Html.BeginForm())
{
    @HtmlHiddenFor(m => m.Id)
    <div>First - @Html.CheckBoxFor(m => m.First)</div>
    <div>Second - @Html.CheckBoxFor(m => m.Second)</div>
    <div>Third - @Html.CheckBoxFor(m => m.Third)</div>
    <input type="submit">
}

[HttpPost]
public ActionResult SomeActionMethod(int id)
{
    var model = new MyClass(); // build your model however you like
    TryUpdateModel(model);
}
于 2012-12-26T18:44:01.380 に答える