Нажатие кнопки ASP.NET вызывает Postback * и * «GET» - почему? - PullRequest
0 голосов
/ 25 января 2012

У меня есть код, который не поддается объяснению. В нашем веб-приложении есть несколько страниц, которые выполняют некоторую обработку данных (код 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"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...