1

マイページは、ユーザーがメールアドレスとパスワードを入力する登録ページです。ここに私のクリックイベントがあります:

protected void btnRegister_Click(object sender, EventArgs e)
{
    MembershipCreateStatus createStatus = MembershipCreateStatus.ProviderError;

    MembershipUser user = Membership.CreateUser(txtUsername.Text,
        txtPassword.Text, txtEmail.Text, null, null, true, out createStatus);

    if (createStatus != MembershipCreateStatus.Success)
    {
        cvUser.IsValid = false;
        cvUser.ErrorMessage = "Invalid";
    }
    else
        Response.Redirect("Home");
}

ここに私のページがあります:

<asp:ValidationSummary ID="vs" runat="server" />

<asp:TextBox ID="txtUsername" runat="server" />
<asp:TextBox ID="txtEmail" runat="server" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" />

<asp:Button ID="btnRegister" runat="server" OnClick="btnRegister_Click" />
<asp:CustomValidator ID="cvUser" runat="server" ControlToValidate="txtEmail" />

cvUserエラーメッセージが私のValidationSummary.

そのため、ユーザーの作成に失敗すると問題が発生します。cvUser.IsValidエラーが表示されるように falseに設定すると、ページがリロードされます。ページがリロードされたときにのみ、テキストボックス内のすべてのデータが消えます。

そのデータを維持する方法はありますか?

4

1 に答える 1

0

ポストバック後、フォーム項目を手動で再入力するか、値が上書きされないようにする必要があります。後者は、フォーム作成コードを Page_Load メソッドに配置することで実現できますが、if (!IsPostBack) {} ブロックでラップされます。

if (!IsPostBack)
{
  //populate form items
}
else //this is a post back
{
  //do nothing
}
于 2012-08-15T17:01:42.940 に答える