13

次の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();

しかし、うまくいきませんでした...

4

4 に答える 4

24

コードを次のように配置します。

 if (Request.Form["Gender"] != null)
 {
     string selectedGender = Request.Form["Gender"].ToString();
 }

Request.Form["Gender"]RadioButtons が選択されていない場合は 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>

いずれかの RadioButtons が選択されている場合、 ieinput type="submit"と normalの両方のボタンに何らかの値が設定されます。asp:buttonRequest.Form["Gender"]PostBack

そして、はい、PostBack最初のロード時ではなく、いずれかのボタンを押したときのみです。

于 2013-03-29T09:09:07.230 に答える
4

まず、フォームを投稿する必要があります。フォーム コレクションにはページの読み込み時に何もありません。そのため、ボタンがあり、クリックしてフォームを送信すると、クリック イベント ハンドラーでコードを使用して選択した値を取得できます。あなたは試しました。

コレクションがnullであるため、アクセスすると NullReference 例外が発生すると思います。

のようにアクセスする方が良い

if(!string.IsNullOrEmpty(Request.Form["Gender"]))
{

}
于 2013-03-29T09:11:57.367 に答える
2

使う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;
于 2013-03-29T09:00:30.680 に答える
0

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"]);
}
于 2016-11-18T17:49:23.600 に答える