У меня есть код, который не поддается объяснению. В нашем веб-приложении есть несколько страниц, которые выполняют некоторую обработку данных (код VB.net). Один работает как положено, у другого есть проблема.
У них обоих есть контейнер вкладок Ajax для группировки соответствующих частей данных. Когда я нажимаю кнопку «Сохранить», я хочу, чтобы на странице запомнилась активная вкладка. На первой странице проблем нет. Я получаю постбэк, просматриваю Page_Load и все работает как положено.
По какой-то причине на второй странице, когда я нажимаю кнопку Сохранить, которая определена точно так же, как и на первой странице, я получаю ожидаемый "POST" (Request.RequestType = "POST"), но затем Page_Load снова запускается, когда Page.IsPostback имеет значение «False» (Request.RequestType = "GET") - как я только что нажал на странице.
Простая разметка кнопок, с той лишь разницей, что одна находится в таблице, а вторая - в своей собственной <div>
:
<asp:TableCell ColumnSpan="2" HorizontalAlign="Center">
<asp:Button ID="btnSave" runat="server" Text="Save" Width="2in" />
</asp:TableCell>
<center>
<asp:Button ID="btnSave" runat="server" Text="Save" Width="4in" Height="0.33in" />
</center>
Разметка в верхней части страниц идентична - только обязательные свойства с AutoEventWireup и EnableEventValidation как «False» и MaintainScrollPositionOnPostback как «True».
Я не могу понять, почему эти две страницы дают мне такой разный результат. Разметка .aspx очень похожа, поэтому легко обнаружить любые различия. Как я могу выяснить, откуда исходит этот фантом "GET"?