为什么我的 OnSelectedIndexChanged 没有触发?

Why is my OnSelectedIndexChanged not triggering?

我有两个 <select> 控件用作下拉列表:一个包含城市集合,另一个包含酒店列表。我想要的是,当用户更改所选城市时,酒店下拉列表会更新以仅显示该城市的酒店。城市的下拉列表正在成功填充;但是,当城市发生变化时,我似乎无法触发事件。

这是我的城市下拉列表的 CSHTML。注意 AutoPostBack="True" 标签:

      <label asp-for="Destinations" class="col-sm-3">
        Destination
      </label>
      <div class="col-sm-3">
        <select runat="server"
                id="destinationDropdown"
                name="destinationDropdown"
                OnSelectedIndexChanged="destinationDropdown_SelectedIndexChanged"
                AutoPostBack="True"
                style="width:240px">
          @foreach (Destination destination in Model.Destinations){
            <option value="@destination.DestinationId" id="@destination.DestinationId">@destination.DestinationName</option>
          }
        </select>
      </div>Th

这是我的 C# 代码:

    protected void destinationDropdown_SelectedIndexChanged(object sender, EventArgs e)
    {
      //Do work here
      ...
    }

我说事件没有触发,而不是酒店下拉列表的问题,因为我在方法的第一行代码上放置了一个断点,它没有被击中。

我在这个网站上搜索过寻求帮助,似乎大多数解决方案都包含 AutoPostBack="True" 标签,我已经有了。

编辑: 我在评论中得知 AutoPostBack 是一种 WebForms 方法,这就是它在我的 MVC 站点中不起作用的原因。我仍然想知道是否有办法在 MVC 中完成这项工作。我可以根据需要编辑这个问题,或者开始一个新问题。

如果您正在构建 MVC 站点,则 runat="server"AutoPostBack="True"OnSelectedIndexChanged="destinationDropdown_SelectedIndexChanged" 属性将不起作用。它只适用于 WebForm 站点