Javascript 文本框在当前上下文中不存在

Javascript 文本框在当前上下文中不存在,javascript,html,asp.net,Javascript,Html,Asp.net,我不在任何东西上使用母版内容页。我有一个简单的aspx页面。 它仍然显示 当前上下文中不存在名称“txtFirstName” 我的标记 <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="ser

我不在任何东西上使用母版内容页。我有一个简单的aspx页面。 它仍然显示

当前上下文中不存在名称“txtFirstName”

我的标记

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    protected void txtFirstName_TextChanged(object sender, EventArgs e)
    {
        string firstName = txtFirstName.Text;
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="txtFirstName" runat="server" OnTextChanged="txtFirstName_TextChanged"></asp:TextBox>
    </form>
</body>
</html>

受保护的void txtFirstName_TextChanged(对象发送方,事件参数e)
{
string firstName=txtFirstName.Text;
}
即使是ContextChanged事件也能正常启动。我不明白,可能是什么问题

我搜索的其他类似帖子也没什么帮助

请建议……

试试看

<form runat="server">
    <asp:TextBox ID="txtFirstName" runat="server" text="" />
</form>

您必须有一个带有
runat=“Server”
表单标签


@用户3487944,您所说的不工作是什么意思?还是相同的错误,还是不同的问题?在事件处理程序
中,此
指的是页面,而不是控件。
sender
参数是对控件的引用。
protected void txtFirstName_TextChanged(object sender, EventArgs e)
    {
        Button btn = sender as Button;
        string firstName = btn.Text;
    }
<form id="form1" runat="server">
    <asp:TextBox ID="txtFirstName" runat="server" text="" AutoPostBack="True"/>
</form>

protected void txtFirstName_TextChanged(object sender, EventArgs e)
    {
        string firstName = txtFirstName.Text;
    }
   2) Add `AutoPostBack="True"` to the textbox..