2011-12-19 24 views
0

私はSQLデータベースにデータを入力し、成功または不成功を返す必要があるC#aspxフォームを持っています。 Default.aspxページから送信されるフォームデータを取得する方法がわかりません。場合は、あなたがRequest.Form["key"]を通じて投稿フォームデータを取得することができC#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"); 
     } 
    } 

} 

答えて

4

、または:私の基本的なコードの構造は以下の通りですあなたのフォームの要素は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"]; 
+0

ありがとう、私によく見えます。このマシンの主要なビジネスについて考えてみましょうか?これはローカルフォームであり、オンラインでは使用されません。 私はここで取られた措置を取るために勝つことを試みました:http://sharemypoint.wordpress.com/2009/04/15/machinekey-in-webconfig/。 –

+1

マシンのキーのことについてよく分かりません@Bonjour - 申し訳ありません –

+0

問題はありません。私はページのハックを使って動作させました。あなたの回答のおかげで、ありがとう、ありがとう。 –

1

次で試すことができますコード。

string firstname = Request.Form["firstname"] 

string surname = Request.Form["surname"] 
+0

ありがとうございます、この回答は良いです。あなたが上記のアダムの答えに対する私の返答に何か入力があるなら、それはすばらしいおかげです。 –

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"); 
} 
} 
+0

ありがとうございました、この回答は良いです。あなたが上記のアダムの答えに対する私の返答に何か入力があるなら、それはすばらしいおかげです。 –

+1

@Bonjour http://msdn.microsoft.com/en-us/library/w8h3skw9.aspxマシンキーは、同じドメイン内の他のアプリケーションに投稿するときにフォームデータの暗号化と復号化に使用されます。あなたの必要条件には必要はありません.Web.configから ''セクションを削除してください – Deeptechtons