为什么我的代码隐藏事件处理程序没有被引用?

Why is my code-behind event handler not referenced?

为什么我的代码隐藏没有效果,我的断点没有到达?

我的 WebForm1.aspx 文件中有这个:

<asp:checkbox id="ckbxAllGenres" runat="server" Checked="True" OnCheckedChanged="ckbxAllGenres_CheckedChanged" />
<label for="ckbxAllGenres">All</label>
<asp:checkbox id="ckbxAction" runat="server" />
<label for="ckbxAction">Action</label>
<asp:checkbox id="ckbxAdventure" runat="server" />
<label for="ckbxAdventure">Adventure</label>

WebForm1.aspx.cs 文件中的事件处理程序是:

protected void ckbxAllGenres_CheckedChanged(object sender, EventArgs e)
{
    bool allGenresChecked = ckbxAllGenres.Checked;
    ckbxAction.Checked = allGenresChecked;
    ckbxAdventure.Checked = allGenresChecked;
    . . .

我在第一行有一个断点(对 bool 的赋值)。

检查ckbxAllGenres控件时没有到达断点;所以,当然,代码没有 运行,什么也没有发生。

事件处理程序确实指示“0 个引用”,但为什么会这样?

WebForm1.aspx的第一行是:

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

我已经有一年没有使用 Web 表单了,但我认为您缺少 AutoPostBack="true" 复选框:

<asp:checkbox 
    id="ckbxAllGenres" 
    runat="server" 
    Checked="True" 
    OnCheckedChanged="ckbxAllGenres_CheckedChanged" 
    AutoPostBack="true" />