新しいプロジェクトで asp.net mvc を試していますが、奇妙なことに遭遇しました。テキスト ボックスに MVC UI ヘルパーを使用すると、呼び出し間で値が保持されます。しかし、一連のラジオ ボタンを使用すると、チェック状態が保持されません。
これが私の見解からの例です。
<li>
<%=Html.RadioButton("providerType","1")%><label>Hospital</label>
<%=Html.RadioButton("providerType","2")%><label>Facility</label>
<%=Html.RadioButton("providerType","3")%><label>Physician</label>
</li>
フォームがポストバックされたら、「ProviderType」をプロパティの 1 つとしてオブジェクトを作成します。オブジェクトの値が設定され、プロバイダーを引数として RedirectToAction を実行します。すべて問題なく、「 http://localhost/Provider/List?ProviderType=1 」のような URL になり、ProviderType が表示されます。値は URL に永続化されますが、UI ヘルパーはチェックされた状態を取得していません。
リストボックス、ドロップダウンリスト、およびラジオボタンでこの問題が発生しています。テキストボックスは問題なく値を取得します。私が間違っていることがわかりますか?私はヘルパーがこれをやってくれると思っていますが、おそらく私は自分でこれを処理する必要があります. 私はこれを通して自分のやり方を感じているので、あなたの意見をお待ちしております.
編集:選択した値を取る SelectList コンストラクターのオーバーライドを見つけました。これで、上記のドロップダウンの問題が解決されました。
編集#2:うまくいくものを見つけましたが、このようにするのは苦痛です。これは推理すべきだと思います。
<li>
<%=Html.RadioButton("ProviderType","1",Request["ProviderType"]=="1")%><label>Hospital</label>
<%=Html.RadioButton("ProviderType", "2", Request["ProviderType"] == "2")%><label>Facility</label>
<%=Html.RadioButton("ProviderType", "3", Request["ProviderType"] == "3")%><label>Physician</label>
</li>
うまくいけば、誰かが別の方法を考え出すでしょう。