aspx 元素在隐藏代码中无法识别 (asp.net)

aspx element is not recognized in code behind (asp.net)

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

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="" />

code behind

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

    }

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

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

  • 此外,<a> 标签不是输入元素,也不会 post 返回任何东西 - 所以 score = time.Text 除了你已经准备好的那个之外不会得到任何东西之前设置。

阿里斯托斯写的是对的,但是你的问题比这更深。为了使用像 <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