如何在asp中提交表单并获取其值

时间:2012-04-28 14:17:14

标签: asp.net html

我有一个带有单选按钮的表单和一个提交按钮,它只重新加载页面而不提交表单数据...我应该在表单操作或方法中做什么,以便我可以获得这些单选按钮值

<form id="form2" name="form2" method="post" action="" runat="server">

    <br />

    <asp:Button ID="Button1" runat="server" Text="Button" />
</form>

2 个答案:

答案 0 :(得分:2)

ASP.NET Web窗体试图让您觉得您正在使用Windows窗体应用程序之类的东西。如果你来自Html背景,你需要一些适应性。

虽然ASP.NET“FORM”拼写有相同的四个字母,但它与标准的Html&lt; FORM&gt;不同。默认情况下,Button1 标准Html&lt; FORM&gt;中的提交按钮。您可以在ASP.NET FORM中拥有多个Button控件。每个Button控件都必须绑定到onClick事件处理程序, a la Windows窗体,然后将代码放在此事件处理程序中。

双击ASPX Design选项卡中的Button1,将在代码隐藏页面中为您生成Button1_Click事件。将您的代码放在此事件处理程序中。

ASP.NET然后生成一些Html输出以使Button1成为&lt; INPUT TYPE ='SUBMIT'&gt;带有onClick脚本的Html控件(不要与你的Button1_Click事件处理程序混淆)使用包含一个名为__VIEWSTATE的巨型表单参数发回服务器。然后服务器使用__VIEWSTATE确定您在Button1_Click事件处理程序中并继续执行那里的代码。

单选按钮也是如此。 ASP.NET将生成&lt; INPUT TYPE ='RADIO'&gt;从你的单选按钮,但你不需要(或不应该)关注自己。在Button1_Click事件处理程序中,您可以读取ASP.NET单选按钮控件的属性。

使用ASP.NET,基本上你应该不知道并放弃对生成的Html输出的控制。您应该只使用服务器上可见的对象(代码隐藏)。 &lt; asp:Button ID ='Button1'runat ='server'&gt;甚至不生成&lt; input type ='submit'name ='Button1'id ='Button1'&gt;除了最简单的ASP.NET页面。

答案 1 :(得分:1)

您的代码似乎没有任何radiobutton控件...

示例显示不同的选项:

HTML

<form id="form1" runat="server">
 <div>
    <p>
        Name:
        <asp:TextBox ID="textbox1" runat="server" />
        <br />
        Coffee preference:
        <asp:RadioButtonList ID="CoffeeSelections" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
            <asp:ListItem>Latte</asp:ListItem>
            <asp:ListItem>Americano</asp:ListItem>
            <asp:ListItem>Capuccino</asp:ListItem>
            <asp:ListItem>Espresso</asp:ListItem>
        </asp:RadioButtonList>
        <br />
    </p>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<div>
    <h1>
        Results</h1>
    <p>
        <asp:Label runat="server" ID="labelResults"></asp:Label></p>
</div>
</form>

代码:

//You can inspect on Page_Load
protected void Page_Load(object sender, EventArgs e)
{
    //Only inspect on submission
    if (Page.IsPostBack)
    {
        if (!string.IsNullOrEmpty(CoffeeSelections.SelectedValue))
        {
            labelResults.Text = CoffeeSelections.SelectedValue + "<br />";
        }

        //you can also inspect request.form colletion
        foreach (string item in Request.Form)
        {
            labelResults.Text += "<b>KEY</b> : " + item + " <b>VALUE</b> = " + Request.Form[item] + "<br />";
        }
    }
}

//You can also inspect on raised control events (e.g. button)
protected void Button1_Click(object sender, EventArgs e)
{
    string _foo = CoffeeSelections.SelectedValue;
    labelResults.Text += _foo;

}