C#ASPX - 表单提交查询

时间:2011-12-19 05:51:45

标签: c# asp.net forms

我有一个C#aspx表单,我需要将其数据输入到SQL数据库中,然后返回一个表示成功与否的响应。我不知道如何获取从Default.aspx页面发送的表单数据。我的基本代码结构如下:

Default.aspx

<form runat="server" name="aForm" action="Results.aspx" method="post" onsubmit="ValidateForm()">  
  <input name="firstname" type="text" />
  <input name="surname" type="text" />
  <input type="submit" value="Submit" />
</form>

Results.aspx.cs

public partial class AwardsForm : System.Web.UI.Page {

  protected void Page_Load(object sender, EventArgs e) {

    if (!this.IsPostBack){
        Response.Redirect("Default.aspx");
    } else (this.IsPostBack) {
        writeResults(FormSubmit()); 
    }

    protected boolean FormSubmit() {
      // get form data and insert it into SQL
      // return true/false based on success
    }

    protected void writeResults(boolean results) {
      if (results == true) {
        Response.Write ("Success");
      } else {
        Response.Write ("Failed");
      }
    }

}

3 个答案:

答案 0 :(得分:4)

您可以通过Request.Form["key"]获取发布的表单数据,或者,如果您的表单元素使用runat="server"进行修饰,那么您应该能够在代码后面的ID中抓取它们

<asp:TextBox id="yourTb" runat="server"></asp:TextBox>

string postedText = yourTb.Text;

或者你可以这样做(虽然这不常见)

<input type="text" runat="server" id="yourOtherTb" />

string otherPostedText = yourOtherTb.Value;

或者如果你正在使用纯粹的html表单输入:

<input type="text" id="clientTb" name="clientTb" />

string clientText = Request.Form["clientTb"];

答案 1 :(得分:1)

您可以尝试使用以下代码。

string firstname = Request.Form["firstname"]

string surname = Request.Form["surname"]

答案 2 :(得分:1)

因为你正在做这样的事情

 <input name="firstname" type="text" />
  <input name="surname" type="text" />
  <input type="submit" value="Submit" />

输入控件的name属性将发布回服务器(IIS)。因此你会这样做。

If(IsPostBack)
{
  string firstName = Request.Forms["firstname"];
  string surName = Request.Forms["surname"];

if(string.IsNullOrEmpty(firstName))
{
Response.Write("Firstname is required");
}
}