J'ai la source HTML suivante
<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>
Ma question est comment puis-je obtenir la valeur sélectionnée à la variable dans la page c #?
J'ai essayé ceci:
Gender = Request.Form["Gender"].ToString();
Mais ça n'a pas marché ...
placez votre code comme ceci:
if (Request.Form["Gender"] != null)
{
string selectedGender = Request.Form["Gender"].ToString();
}
Notez que Request.Form["Gender"]
sera nul si aucun des boutons radio n’est sélectionné.
voir le balisage ci-dessous
<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>
pour les deux boutons i.e input type="submit"
et asp:button
habituel, Request.Form["Gender"]
aura une valeur sur PostBack
, à condition que l'un des boutons radio soit sélectionné.
Et oui, uniquement sur PostBack
, c’est-à-dire lorsque vous appuyez sur l’un des boutons et non lors du premier chargement.
Pour commencer, vous aurez besoin du formulaire envoyé. La collection de formulaires n'aura rien sur le chargement de la page. Supposons que vous ayez un bouton et que vous cliquez pour soumettre le formulaire, puis dans le gestionnaire d'événements click, vous pouvez obtenir la valeur sélectionnée avec le code Vous avez essayé.
J'imagine que la collection est nulle, d'où l'exception NullReference lorsque vous y accédez.
Il vaut mieux y accéder comme
if(!string.IsNullOrEmpty(Request.Form["Gender"]))
{
}
Utilisez une RadioButtonList
<asp:RadioButtonList id="RadioButtonList1" runat="server">
<asp:ListItem value="male">male</asp:ListItem>
<asp:ListItem value="female">female</asp:ListItem>
</asp:RadioButtonList>
et obtenir la valeur avec
RadioButtonList1.SelectedValue;
si vous travaillez avec asp.net, assurez-vous que le nom du contrôle HTML de Request.Form contient ces $ ct100 avec le nom ou l'id avec lequel vous évaluez. Vérifiez l'exemple ci-dessous.
int rbratebyname = 0;
if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}