2013-03-29 6 views
11

У меня есть следующий исходный HTMLПолучение значения от кнопки HTML радио - в ASPX-C#

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

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

+0

Не работает? Можете ли вы расширить это ... – V4Vendetta

+0

Да, когда дело дошло до этой строки, я получил это сообщение об ошибке: System.NullReferenceException –

+0

Хорошо, где вы пишете этот кусок кода, и нет ли у вас кнопки для отправки? – V4Vendetta

ответ

18

пла се код, как это:

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

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

увидеть разметку ниже

<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, при условии, либо из Radiobuttons выбран.

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

+0

Большое спасибо! Он отлично работает! –

+0

рад помочь вам :) –

+0

Должен ли использоваться 'Request.Form'? Не могу ли я просто вызвать элемент управления с помощью 'id' со стороны сервера (код C# позади)? – aspiring

1

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

Спасибо, но я должен сделать список в html, есть возможность получить значение, когда оно находится в HTML? –

+0

@Nave, Почему? Вы используете форму ASP.net с 'runat =" server "'. Так почему бы не использовать 'RadioButtonList'? –

+0

Привет, я просто изучаю эту тему, и учитель сказал нам попробовать получить значение от html-переключателя ... Возможно ли это? –

4

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

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

Лучше обращаться к нему как

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

} 
0

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

int rbratebyname = 0; 

if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null) 
{ 
    rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]); 
} 
Смежные вопросы