0

所以,我正在用 C# 制作一个 ASP.NET 页面。我有一个非常简单的表单,上面有 2 个文本框和 3 个按钮。当我单击“提交”按钮时,它会调用 SQL Server 数据库以检索一些信息。检索到数据后,我有一个 if 语句来检查其中一个加载的值。问题是单击按钮后页面似乎冻结了,我无法再次单击它。我仍然可以在文本框中输入数据,但按钮没有显示为 LinkBut​​ton,鼠标图标没有改变或任何东西。ASPX.CS 页面的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CharacterSheet.BLL;
using CharacterSheet.Data;

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

    protected void ClearButton_Click(object sender, EventArgs e)
    {
        UserBox.Text = "";
        PassBox.Text = "";
    }

    protected void SubmitButton_Click(object sender, EventArgs e)
    {
        PlayerController pc = new PlayerController();
        Player player;

        if (UserBox.Text.Contains('@') && UserBox.Text.Contains(".c"))
            player = pc.GetByEmail(UserBox.Text);
        else
            player = pc.GetByUser(UserBox.Text);


        if (player != null)
        {
            if (!player.Flagged)
            {
                if (PassBox.Text != player.Password)
                {
                    ErrorLabel.Text = "Password does not match our records. Please retype carefully...";

                    player.LoginAttempts++;

                    if (player.LoginAttempts >= 3)
                        player.Flagged = true;

                    pc.Update(player);
                }
                else
                    Response.Redirect(SiteData.LoginMainPage);
            }
            else
                ErrorLabel.Text = "Your account has been flagged. Please e-mail our support team.";
        }
        else
            ErrorLabel.Text = "Unable to find user. Please retype carefully...";
    }
}

以及 ASP 标记页面的代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    <style type="text/css">
        .leftColumn
        {
            text-align: right;
        }
        .style1
        {
            width: 30%;
            text-align: right;
            height: 47px;
        }
        .style2
        {
            width: 70%;
            text-align: right;
            height: 47px;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
    <table>
        <tr>
            <td class="leftColumn">
                <asp:Label ID="Label1" runat="server" CssClass="FormText" 
                    Text="Username or Email"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="UserBox" runat="server" ToolTip="Enter your username here"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                    ControlToValidate="UserBox" ErrorMessage="Username or Email is required" 
                    ForeColor="Red">*</asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="leftColumn">
                <asp:Label ID="Label2" runat="server" CssClass="FormText" Text="Password"></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="PassBox" runat="server" TextMode="Password" 
                    ToolTip="Enter your password here" TabIndex="1"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                    ErrorMessage="Password is required" ForeColor="Red" 
                    ControlToValidate="PassBox">*</asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td class="style1"></td>
            <td class="style2">
                <asp:ValidationSummary ID="ValidationSummary" runat="server" 
                    CssClass="ValidationSumary" ForeColor="Red" Height="43px" 
                    style="text-align: left" Width="335px" DisplayMode="List" />
                <asp:LinkButton ID="SubmitButton" runat="server" CssClass="FormButton" 
                    TabIndex="2" onclick="SubmitButton_Click" PostBackUrl="~/Login.aspx">Submit</asp:LinkButton>
                <asp:LinkButton ID="ClearButton" runat="server" CausesValidation="False" 
                    CssClass="FormButton" TabIndex="3" onclick="ClearButton_Click">Clear</asp:LinkButton>
                <asp:LinkButton ID="NewAcctButton" runat="server" CausesValidation="False" 
                    CssClass="FormButton" TabIndex="4">Create Account</asp:LinkButton>
                <br />
                <asp:Label ID="ErrorLabel" runat="server" ForeColor="Red" 
                    CssClass="FormErrorLabel"></asp:Label>
            </td>
        </tr>
    </table>
</asp:Content>

感谢任何可以提供帮助的人!:-)

编辑:经过进一步调查(按顺序注释掉代码行),我发现当我更新“ErrorLabel.Text”时出现问题。如果我不这样做,那么它的功能就很好......这让我很困惑......

4

2 回答 2

1

如果 aspx 页面中有任何不需要的代码或出现运行时错误,则页面将冻结。为避免这种情况再次分析您的代码并删除它将运行的不需要的东西。

于 2016-09-27T05:15:51.560 回答
0

随机单击标签属性中的按钮后,当我没有将 CSS 类附加到标签时,我发现它停止中断......我不知道为什么,但它解决了问题。

于 2012-07-05T03:28:55.603 回答