У меня есть страница ASP.NET с двумя переключателями. Кнопки используют авто-обратную передачу для выполнения логики на стороне сервера. Если вы выберете вторую кнопку, страница вернется и правильно отобразит сообщение о том, что выбрана вторая кнопка. Если щелкнуть кнопку назад браузера, состояние кнопки 2 будет проверено, пока сообщение вернется к утверждению, что указанная кнопка отмечена. Это приводит к ситуации, которая явно нежелательна, поскольку состояние переключателей и сообщений теперь не синхронизировано. Я знаю, что это проблема кэширования, но мне кажется странным, что браузер запоминает предыдущее состояние метки, но не предыдущее состояние переключателя.Состояние кнопки состояния радиостанции ASP.NET
Каков наилучший способ справиться с этой ситуацией? В этой ситуации нежелательно отключать кеш или использовать кнопку «Назад».
Следующий пример кода демонстрирует такое поведение:
[Форма:]
<asp:RadioButton ID="rb1" runat="server" AutoPostBack="true" Text="Button1" OnCheckedChanged="rb_CheckedChanged"
GroupName="rbgroup" Checked="true" />
<br />
<asp:RadioButton ID="rb2" runat="server" AutoPostBack="true" Text="Button2" OnCheckedChanged="rb_CheckedChanged"
GroupName="rbgroup" />
<br />
<hr />
<asp:Label ID="lbl1" runat="server">Button 1</asp:Label>
[Код Behind:]
protected void rb_CheckedChanged(object sender, EventArgs e)
{
if (rb1.Checked == true)
lbl1.Text = "Button 1";
else
lbl1.Text = "Button 2";
}