私はasp.netを使用していますが、runat = "server"ではなく通常のフォームを使用しています。ここでは1です:提出時にフォームが消去されるのを防ぐ
<form action="addUser.aspx" method="post">
<fieldset>
<label>Username</label>
<input name="username" type="text" maxlength="50" />
<span id="usernameInfo" class="fieldInfo" runat="server"></span>
</fieldset>
<fieldset>
<label>Password</label>
<input name="password" type="password" maxlength="50" />
<span id="passwordInfo" class="fieldInfo" runat="server"></span>
</fieldset>
<fieldset>
<label>Email</label>
<input type="text" maxlength="50" />
<span id="emailInfo" class="fieldInfo" runat="server"></span>
</fieldset>
<div class="buttonHolder">
<button type="submit">Submit</button>
<span id="generalInfo" runat="server"></span>
</div>
</form>
フォームがsubmitedとページをリロードした場合、フォーム内のすべてのフィールドが空です。フォームを検証し、ユーザー名が既にユーザーに入っているかどうかをユーザーに知らせる必要があるため、これは面倒です。
どうしてですか?フォームを処理するすべてのコードを取り除いても、サブミット時にクリアされます。 Web上では、困難な人たちが持っているのは反対です。
なぜ私の逆が起きているのですか?それを修正するにはどうすればよいですか?
ビューステート(あなたがサーバーコントロールを使用していない、特に以来)を診断するためにこれを容易になるだろう、送信されたフォームを処理のコード上の
詳細。必要があれば、Fiddlerを使用して、http投稿にフォームデータが含まれていることを確認できます。 –
@KenHendersonフォームデータがサーバーに届いているのが分かります。問題は、ページが更新されたときにユーザーのブラウザからそれをクリアすることです。すべてのフォーム処理コードを取り出すとしても、これは起こります。 – Oliver
個人的に私は以下のボビーの答えに行きます。しかし、L Johnson氏は、サーバーコントロールを使用していない場合は、表示させたい場合にページがサーバー上で処理を終了する前に、ポストされたデータをポピュレートする責任があることを示しています。 –