1

FormCollection を投稿してラジオ ボタンの値を取得しようとすると、常に最後のラジオ ボタンの値が取得されます (どちらがチェックされているかに関係なく)。なぜこれを行うのですか?私の一時的な回避策は、非表示の値を作成し、onclick JS メソッドを追加することです。同じ結果で純粋な HTML コードを使用してみました。

ビューのコード

@Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) + " No");
@Html.RadioButton("Radio", "Yes", false, new { id = "Radio1"}) + " Yes");

結果の HTML

<input checked="checked" id="Radio0" name="Radio" type="radio" value="No"> No
<input id="Radio1" name="Radio" type="radio" value="Yes"> Yes

コントローラーコード

[HttpPost, ValidateInput(false)]
public ActionResult MyPostBack(FormCollection form)
{
    string radio = form["Radio"]; //************** this is always "Yes"
    return View("MyView");
}
4

1 に答える 1

0

実際には問題を再現できませんでした。コントローラーの PostBack で選択されたラジオ ボタンを正しく識別します。

ビューのコードを確認することをお勧めします (ビューの指定された構文では、最初にページをレンダリングするべきではなく、コンパイル エラーをスローする必要があります)。

これは私がテストしていたビューでした

@{
    ViewBag.Title = "MyView";
}

<h2>MyPostBack</h2>
@using (Html.BeginForm())
{
    @Html.RadioButton("Radio", "No", true, new { id = "Radio0"}) @:No
    @Html.RadioButton("Radio", "Yes", false, new { id = "Radio1"}) @:Yes
    <input type ="submit" runat="server" id="btnSubmit" />
}

編集

コメントに基づいて、を使用しているためDevExpress、最初に提供されたドキュメントを確認してください。それはあなたを正しい方向に向けるはずです。いくつかの Google 検索を行うと、拡張機能に加えてRadioButton拡張機能もあることがわかりましたRadioButtonList。ここにあなたを助けることができるいくつかのリンクがあります.

DevExpress ドキュメント (RadiButtonList)

RadioButtonList の使用例

RadioButton に関するディスカッション スレッド(ただし、 の使用方法の例は見つかりませんでした。使用RadioButtonできるスレッドによると、RadioButtonに 2 つの選択肢から選択するオプションがある場合、それ以外の場合は を選択する必要がありますRadioButtonList)

また、誰もが述べたようにModel/ViewModelFormCollection

于 2012-06-06T02:20:38.933 に答える