在后面的代码中无法识别 aspx 元素 (asp.net)

问题描述

我创建了一个带有 runat="server" 标记的元素,但在后面的代码中无法识别我。(“时间”无法识别)

aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="game.aspx.cs" Inherits="RapidTyper.game" %>

<!DOCTYPE html>
        <div runat="server">
    <a runat="server" id="time"></a>
        </div>
    <asp:Button ID="UpdateResults" runat="server"  ClientIDMode="Static" style="display:none;" OnClick="Button1_Click" Text="" />

背后的代码

 protected void Button1_Click(object sender,EventArgs e)
    {
        int score = time.Text;

    }

解决方法

元素 <a runat="server" id="time"></a> 不是一个 asp.net 元素,而是一个没有 Text 属性的 Html element

您可以使用呈现 <asp:LinkButton runat="server" ID="time2"></asp:LinkButton> 标记并具有 Text 属性的 LinkBut​​ton <a>

  • 此外,<a> 标签不是输入元素,也不会回发任何内容 - 因此 score = time.Text 不会得到除您之前已准备好的任何内容之外的任何内容。
,

Aristos 写的是正确的,但你的问题比这更深。为了使用像 <asp:Button /> 这样的元素,您需要将它们放在一个表单中,而表单又需要在一个 <body> 中。至少你需要这样的东西:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="eShop.test" %>


<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox runat="server" id="time" />
        </div>
    <asp:Button ID="UpdateResults" runat="server" OnClick="UpdateResults_Click" />
        </form>
</body>
</html>

请注意,我假设您还需要 <asp:TextBox> 之类的东西。我认为这应该是某种用户输入?最后,您将无法简单地执行 int score = time.Text,因为 Text 是一个字符串。至少您需要 int score = int.Parse(time.Text) 但这只会在框包含实际整数的情况下起作用。其他任何事情都会引发错误。相反,您应该查看 int.TryParse

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...