0

私は2つのブール値を含むこのモデルを持っています:

public bool m_IsOptionA {get;set;}
public bool m_IsOptionB {get;set;}

そして、私の見解では、2 つのラジオ ボタンを生成したいので、ユーザーはどちらかを選択する必要があります。ということで、基本的にはどちらかを選択するともう一方がチェックされないようにする必要があります。

私のコントローラーでは、モデルをビューに渡す前に、オブジェクトのリストの各項目に対して次のようにこれらの値を初期化します。

foreach (var item in m_ListObjs)
{
    item.m_IsOptionA = true;
    item.m_IsOptionB = false;
}

次に、私の見解では、ラジオボタン用に次のコードを生成します。

@for (int i = 0; i < Model.Count; i++)
    {
        <p>
            <tr>
                <td>@Html.RadioButtonFor(x => x[i].m_IsOptionA, new{id = "m_IsAuction_true"}, new {style = "width:100px"})</td>
                <td>@Html.RadioButtonFor(x => x[i].m_IsOptionB, new{id = "m_IsBuyItNow_false"}, new {style = "width:130px"})</td>
            </tr>
        </p>
    }

しかし、それらは両方ともチェックでき、チェックされた後もチェックされたままになります。これは私が望む動作ではありません。

JavaScriptが必要ですか?そうですか、どうすればこれを行うことができますか? そうでない場合、何が間違っていましたか?

ありがとうございました!

4

1 に答える 1

0

Ok!@ Digger37 のおかげで、自分の間違いを理解できました。ブール値を 2 つ持つ必要はありませんが、必要な値ごとに 1 つと 2 つのラジオボタンが必要です。

これが私のブール値です:

public bool m_IsOptionSelected {get;set;}

そして今、ここに私の新しい見解があります:

<td>@Html.RadioButtonFor(x => x[i].m_IsOptionSelected , "true", new {style = "width:100px"}) Option A</td>
<td>@Html.RadioButtonFor(x => x[i].m_IsOptionSelected , "false", new {style = "width:100px"}) Option B</td>

そして、それは完璧に機能します。ありがとう!

于 2013-03-08T14:03:54.053 に答える