次のHTMLソースがあります
<form name="Register1" action="Register.aspx" id="registerform" method="post"
runat="server" style="margin-top: 15px;">
<input type="radio" name="Gender" value="male" />male
<input type="radio" name="Gender" value="female" />female
</form>
私の質問は、選択した値をC#ページの変数にどのように取得できますか?
私はこれを試しました:
Gender = Request.Form["Gender"].ToString();
しかし、うまくいきませんでした...
次のようにコードを配置します。
if (Request.Form["Gender"] != null)
{
string selectedGender = Request.Form["Gender"].ToString();
}
ご了承ください Request.Form["Gender"]
は、RadioButtonがどれも選択されていない場合、nullになります。
以下のマークアップを参照してください
<form id="form1" runat="server" method="post">
<input type="radio" name="Gender" value="male" id="test" checked="checked" />
male
<input type="radio" name="Gender" value="female" />female
<input type="submit" value="test" />
<asp:Button ID="btn" runat="server" Text="value" />
</form>
両方のボタン、つまりinput type="submit"
および通常のasp:button
、Request.Form["Gender"]
は、PostBack
に何らかの値を設定します。ただし、いずれかのRadioButtonが選択されている場合に限ります。
はい、PostBack
のみ、つまり、最初のロードではなく、いずれかのボタンを押したときです。
開始するには、フォームの投稿が必要です。フォームコレクションにはページの読み込みに何もありません。したがって、ボタンがあり、クリックしてフォームを送信すると、クリックイベントハンドラーで選択した値をコードで取得できますあなたが試しました。
コレクションはnullなので、アクセスするとNullReference例外が発生します。
次のようにアクセスすることをお勧めします
if(!string.IsNullOrEmpty(Request.Form["Gender"]))
{
}
RadioButtonList
を使用します
<asp:RadioButtonList id="RadioButtonList1" runat="server">
<asp:ListItem value="male">male</asp:ListItem>
<asp:ListItem value="female">female</asp:ListItem>
</asp:RadioButtonList>
と値を取得
RadioButtonList1.SelectedValue;
asp.netを使用している場合は、Request.FormによるHTMLコントロール名に、評価に使用する名前またはIDを含むこれらのct100 $が含まれていることを確認してください。以下の例を確認してください。
int rbratebyname = 0;
if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}