ASP.NET MVCアプリケーションのラジオボタンのグループから選択された要素を取得するにはどうすればよいですか?
-
06-07-2019 - |
質問
ASP.NET MVC アプリケーションには、各グループに対応するリンクを持つラジオ ボタンのグループが 2 つあります。
わかりやすくするために、以下のスクリーンショットを示します。
代替テキスト http://img21.imageshack.us/img21/7959/radiogroups.png
適切なリンクを選択すると、特定のグループに関連付けられた値がコントローラーのアクションに渡される必要があります。
たとえば、上記の場合、「リンク 1」をクリックしている間、値 A1 または A2 がコントローラーのアクション メソッドに渡される必要があります。
適切なアクション メソッドにポストを実行しようとしましたが、2 番目のリンクに関連付けられた値も渡されます。クリックされたリンクから選択された値のみを取得するにはどうすればよいですか?
解決
リンクのhrefとしてjavascript関数を使用します。対応するラジオボタングループの選択された値を読み取り、それをURL文字列に追加します。 window.locationを設定するか、フォームアクションを設定して送信できます。
他のヒント
javascriptを使用すると、フォームを送信する前に他のラジオボタンの値をクリアできます。
他の解決策は、非表示フィールドを持ち、リンクがクリックされるたびにjavascriptを使用して適切な値を入力することです。次に、このフィールドの値を取得し、ラジオボタンを忘れます。
2 つのラジオ ボタンと関連するリンクを別のフォームに配置します。リンクを送信ボタンに置き換えます (または、リンクのように見せたい場合は画像を送信します)。したがって、同じコントローラー アクションに投稿する 2 つのフォームが存在します。送信ボタンに name
これをアクション内で使用して、どのボタンがクリックされたかを判断できます。隠しフィールドを使用することもできます。アクションで最初に行うことは、どのボタンがクリックされたかを判断し、ラジオ ボタンの適切なリクエスト値を読み取ることです。
もう 1 つの方法は、2 つの送信ボタンと異なる名前を使用して、すべてを同じフォームに含めることです。
表示
@model MvcApplication2.Models.CountryModel
@using (Html.BeginForm())
{
@Html.RadioButton("Gender", "Male" new { @checked = "checked" }) Male
@Html.RadioButton("Gender", "Female")Female
<input type="submit" text="submit"/>
}
モデル
public class CountryModel
{
public string Gender{ get; set; }
}
コントローラー
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(CountryModel model)
{
//for radio button
CountryModel dd = new CountryModel();
string date1 = model.RDB;
return View(model);
}