【问题标题】:Getting value from html radio button - in aspx-c#从 html 单选按钮获取价值 - 在 aspx-c#
【发布时间】:2013-03-19 23:19:23
【问题描述】:

我有以下 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();

但它没有工作......

【问题讨论】:

  • 没用?你能扩展一下吗...
  • 是的,当谈到这一行时,我收到了以下错误消息:System.NullReferenceException
  • 那么你在哪里写这段代码,你没有任何按钮来提交这个吗?
  • 你检查过Request.Params

标签: c# asp.net html radio-button radiobuttonlist


【解决方案1】:

这样放置您的代码:

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

请注意,如果未选择任何 RadioButton,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>

对于两个按钮,即input type="submit" 和通常的asp:buttonRequest.Form["Gender"] 将在PostBack 上具有一些价值,前提是选择了任一 RadioButtons。

是的,仅在 PostBack 时,即当您点击任一按钮而不是第一次加载时。

【讨论】:

  • 一定要用Request.Form吗?我不能只从服务器端通过其id 调用控件(C# 代码后面)吗?
【解决方案2】:

首先,您需要发布表单,表单集合在页面加载时不会有任何内容,因此假设您有一个按钮并单击以提交表单,然后在单击事件处理程序中您可以获得选定的值使用您尝试过的代码。

我猜这个集合是空的,因此当你访问它时会出现 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;
    

    【讨论】:

    • 谢谢,但是我必须在html中做列表,当它在HTML中时有选项可以获取价值吗?
    • @Nave,为什么?您使用带有runat="server" 的ASP.net 表单。那么为什么不使用RadioButtonList
    • 你好,我刚学这门课,老师告诉我们试着从html单选按钮中获取价值……有可能吗?
    • 嗯,这没有明确声明。 ASP.net RadioButtonList 的结果也是干净的 HTML。所以我会在你的情况下使用它。
    • @LinusCaldwell,在某些情况下,您需要根据用户的条目生成单选按钮列表(这对于在客户端生成的速度很重要),在我的情况下它们是文本框。 OP 和我正在寻找的是在客户端最终确定后读取此列表的方法。在这些情况下,由于它们会产生大量网络流量,因此不能选择使用 asp.net 控件。
    【解决方案4】:

    如果您正在使用 asp.net,请确保 Request.Form 的 HTML 控件名称包含这些 ct100$ 以及您正在评估的名称或 id。检查下面的例子。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 2013-02-06
      • 2013-08-13
      • 2015-03-06
      • 2014-04-05
      • 2016-10-11
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多