Получение значения из HTML-переключателя-в aspx-c#
у меня есть следующий 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 ответов
поместите свой код следующим образом:
if (Request.Form["Gender"] != null)
{
string selectedGender = Request.Form["Gender"].ToString();
}
отметим, что Request.Form["Gender"]
будет 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>
для обеих кнопок i.e input type="submit"
и обычно asp:button
, Request.Form["Gender"]
будет иметь некоторое значение на PostBack
, при условии, что выбрана любая из Радиобутонов.
и Да, после PostBack
только, т. е. когда вы нажмете на любую из кнопок, а не при первой загрузке.
для начала вам понадобится форма, опубликованная коллекция форм не будет иметь ничего при загрузке страницы, поэтому предположим, что у вас есть кнопка, и вы нажимаете, чтобы отправить форму, затем в обработчике событий click вы можете получить выбранное значение с кодом, который вы пробовали.
Я думаю, что коллекция имеет значение 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 убедитесь, что имя элемента управления HTML по запросу.Форма содержит эти ct100$ с именем или идентификатором, через который вы оцениваете. проверьте приведенный ниже пример.
int rbratebyname = 0;
if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}