首页 > 解决方案 > ASP.NET 窗体的奇怪页面行为。Request.HttpMethod 是 POST 但 Page.IsPostBack 返回 False

问题描述

我在里面有 .aspx 页面的奇怪行为iframe。第一次单击提交按钮不会产生Page.IsPostBack也不会触发回发处理程序。第二次点击就可以了。这是代码。

.aspx

<!DOCTYPE html>
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="form.aspx.vb" Inherits="form" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>form inside iframe</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <%--More controls--%>
            <asp:Button Text="Submit" ID="btnSubmit" runat="server" />
        </div>
    </form>
</body>
</html>

.aspx.vb

Partial Class form
    Inherits System.Web.UI.Page

    Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            '// After first click on btnSubmit Page.IsPostBack is False
            '// and btnSubmit_Click handler isnot fired

            '// After second click on btnSubmit Page.IsPostBack is True
            '// and btnSubmit_Click handler IS fired

            '//This is a patch to work around misbehavior
            If Request.HttpMethod = "POST" Then
                btnSubmit_Click(btnSubmit, EventArgs.Empty)
            End If
        End If
    End Sub

    Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
        '//Do something
    End Sub
End Class

这个问题主要是一个警告,因为我已经解决了这个问题。

标签: asp.net

解决方案


推荐阅读