2012-01-15 5 views
0

私はユーザーが自分自身を登録することを要求するWebアプリケーションを構築しようとしています。 私の必要に応じてカスタムバリデーターやバリデーターを追加しました。 .aspxのファイルにフォームデータをasp.netで検証するデータベースに挿入する方法は?

コードの一部

<form id="form" name="form" action="../Hi.aspx" method="post"> 
<table cellspacing="4" class="style1"> 
    <tr> 
<td class="style4"> 
<asp:TextBox ID="TxtFirstName" runat="server" Width="157px"></asp:TextBox> 
</td> 
td class="style5" id="FName"> 
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="TxtFirstName" 
ErrorMessage="Your First Name should be at least 2 characters long" 
onservervalidate="CustomValidator1_ServerValidate" ForeColor="Red" 
ValidateEmptyText="True"></asp:CustomValidator>... 

と.aspx.csファイル内のコードをcorrespndingは

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
     { 
      args.IsValid = (args.Value.Length>1); 
     } 

私は、アプリケーションのこの部分のみを実行したときにこれが正常に動作しています。

ここでは、すべてのテキストフィールドの値を取得し、データベースに格納したいと考えています。 aspx.csファイルで

は、私は、送信ボタンがクリックされたときに呼び出され

protected void ButtonRegister_Click(object sender, EventArgs e) 
{ 
     string fname = TxtFirstName.Text; 
     Controllers.RegistrationController r = new Controllers.RegistrationController(); 
     int a = r.registerData(fname); 
     if (a==1) { 
      Response.Redirect("../Hi.aspx"); 
     } 
}  

ようなコードを書きました。

データベースとの接続を確立し、フォーム値を格納するRegistrationControllerのregisterData()メソッド。 接続が正しく確立され、値が検索されて保存されます。 しかし、私がregisterData()メソッドをメソッドButtonRegister_Clickから呼び出すと、私が書いたすべての検証は機能しません。フォームに入力されたものは、検証なしでデータベースに格納されます。

値を取得して保存すると同時に、それらが検証されていることを確認するにはどうすればよいですか?

私は.netに慣れているので、助けてください。

は事前にありがとうございました。

答えて

2

あなたのクリックメソッド内Page.Validateを呼び出し、その結果を確認したり、ルールを移動する見たいかもしれませんが、ボタンにCausesValidationを指定すると、長期的には

を実行するためのvaldationを起こす必要がある可能性がありサポートするサービスに移ったときに、それらのサービスでルールを再実装する必要はありません。もちろん、それをUIで取り除く予定がない場合は、下位の(つまり、ビジネスロジック)十分であるかもしれない

+0

Page.Validate is not working。他の方法はありますか? また、検証のために.aspxから.jsファイルを呼び出すことは可能でしょうか? – Sathya

+1

if(!Page.IsValid){ が返されます。 }をクリックします。 ご協力いただきありがとうございます – Sathya

関連する問題