我有以下的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();
但它没有工作...
把你这样的代码:
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
,提供,无论是单选按钮的选择。
是的,在PostBack
而已,也就是当你按下任一按钮,而不是第一次加载。
开始与您需要的形式贴在表格收集不会对页面加载任何东西,所以假设你有一个按钮,单击提交表单,然后在单击事件处理程序,您可以用代码获取所选值你已经尝试。
我猜的集合为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工作,确保通过的Request.Form HTML控件名称包含通过其进行评估名称或ID,这些CT100 $。 检查以下的例子。
int rbratebyname = 0;
if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}