表单在应该发布的时候发布';t

本文关键字:候发布 表单 | 更新日期: 2023-09-27 18:24:47

我正在开发一个"猜测数字"的应用程序。如果用户使用了所有的猜测,就会显示一个按钮(新游戏),如果用户点击它,游戏(当然)就会重新开始。

问题是,当单击时,表单会被发布,并显示一条错误消息,因为输入字段为空(验证)。我就是搞不明白为什么要寄表格。当点击"新游戏"按钮时,我在代码中唯一的东西就是一行用于重置会话?

下面是我的代码隐藏文件中的代码。这是大量的代码,因为我不知道我可以删除什么而不破坏理解问题原因的可能性。

代码背后:

private SecretNumber guessNr = null;
private SecretNumber guessSession
{
    get { return Session["guessSession"] as SecretNumber; }
    set { Session["guessSession"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCheckNr_Click(object sender, EventArgs e) {
    if (!Page.IsValid) {
        return;
    }
    else {
        if (guessSession == null){
            guessSession = new SecretNumber();
        }
        guessNr = guessSession;
        infoToUser.Visible = true;
        string history = "";
        foreach (var guesses in guessNr.PreviousGuesses) {
            history += "[" + guesses.ToString() + "] ";
        }
        var guessedNr = int.Parse(inputBox.Text);
        var result = (int)guessNr.MakeGuess(guessedNr);
        guessHistory.Text = history;
        lastGuess.Text = "[" + guessedNr.ToString() + "]";
        switch (result){
            case 1:
                messageToUser.Text = " The number is too low.";
                break;
            case 2:
                messageToUser.Text = " The number is too high.";
                break;
            case 3:
                messageToUser.Text = String.Format(" Congratulations! You did it on {0} tries!", guessNr.Count);
                btnCheckNr.Enabled = false;
                inputBox.Enabled = false;
                newGame.Visible = true;
                break;
            case 4:
                messageToUser.Text = String.Format("" Game Over. The number was: {0}"", guessNr.Number);
                btnCheckNr.Enabled = false;
                inputBox.Enabled = false;
                newGame.Visible = true;
                break;
        }
    }
}
protected void btnNewGame_Click(object sender, EventArgs e) {
    Session.Abandon();
}

表单在应该发布的时候发布';t

我猜当单击该按钮时,会启动一些客户端验证,因为它正在启动默认验证脚本。

在这种情况下,你应该能够将这个属性添加到新的游戏按钮:

CausesValidation="false"