Подтвердить что ты не робот

Получение значения из html-переключателя - в aspx-С#

У меня есть следующий источник 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>

Мой вопрос: как я могу получить выбранное значение переменной на странице С#?

Я пробовал это:

Gender = Request.Form["Gender"].ToString();

Но это не сработало...

4b9b3361

Ответ 1

разместите свой код следующим образом:

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

Обратите внимание, что Request.Form["Gender"] будет null, если ни один из RadioButtons не выбран.

см. разметку ниже

<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, при условии, что выбран любой из RadioButtons.

И да, только PostBack, т.е. когда вы нажимаете любую из кнопок, а не на первую загрузку.

Ответ 2

Для начала вам понадобится опубликованная форма, у коллекции Form ничего не будет на загрузке страницы, так что предположим, что у вас есть кнопка, и вы нажимаете кнопку, чтобы отправить форму, а затем в обработчик события click вы можете получить выбранное значение с кодом, который вы пробовали.

Я думаю, что коллекция имеет значение null и исключение NullReference при доступе к ней.

Лучше получить к нему доступ, например

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

}

Ответ 3

Используйте 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;

Ответ 4

если вы работаете с asp.net, убедитесь, что имя элемента управления HTML с помощью Request.Form содержит эти ct100 $с именем или идентификатором, с помощью которого вы оцениваете. проверьте приведенный ниже пример.

int rbratebyname = 0;

if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
    rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}