【问题标题】:Only IE10 returning Invalid Postback只有 IE10 返回 Invalid Postback
【发布时间】:2013-07-30 01:50:21
【问题描述】:

我发誓我与微软有着爱恨交织的关系。这仅在 IE 10 中抛出。

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/>

现在,

  1. 在@page 我有 ValidateRequest = "False"

  2. 在 Web.config 我有 httpRuntime requestValidationMode="2.0"

  3. 我没有使用任何 Ajax,也没有 ScriptManager

  4. 我正在检查 PostBack

  5. 删除了组合框代码,但它确实使用了 AutoPostBack

这是我的代码

Private Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init

    Try
      
        Dim User As New UserRole(Me.SiteID, Master.UserName)

        If User.GetLevel(Permissions.Edit) >= Levels.Page Then

            Exit Sub

        End If

    Catch ex As Exception

    End Try

    Response.Redirect("/Manage/Errors/Unauthorized.aspx")

End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Me.IsPostBack = True Then

        Exit Sub

    End If

    Try

        Dim Item As New PageBase(Me.PageID)

        Me.txtCode.Text = Item.Code

    Catch ex As Exception

        Master.ShowError("Flex encountered a problem reading this page.")

    End Try

End Sub

Private Sub cmbSnippet_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbSnippet.SelectedIndexChanged

    If Me.cmbSnippet.SelectedIndex = 0 Then

        Exit Sub

    End If

    Try

        Dim Filename As String = String.Format("/Manage/Editors/Text/Scripts/{0}", Me.cmbSnippet.SelectedValue)

        Me.txtCode.Text = My.Computer.FileSystem.ReadAllText(Server.MapPath(Filename))

        Exit Sub

    Catch ex As Exception

    End Try

    Master.ShowError("Flex encountered a problem reading the snippet.")

End Sub

Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click

    Try

        Dim Item As New PageBase(Me.PageID)

        Item.Code = Me.txtCode.Text

        If Item.Update = True Then

            Me.ShowUpdateTime()

            Exit Sub

        End If

    Catch ex As Exception

    End Try

    Master.ShowError("Flex encountered a problem modifying this page.")

End Sub

Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click

    Response.Redirect(String.Format("/Manage/Preview.aspx?PageID={0}", Me.PageID))

End Sub

【问题讨论】:

  • 请在 xml 段周围加上反引号,使其可见
  • 除了ValidateRequest = "False" @page add EnableEventValidation="false",你试过了吗?
  • btnOkbtnCancel 常规Button 控件还是LinkButtonImageButton 控件?
  • 是的。两者都有。 btnOk / btnCancel 是常规按钮。
  • 查看来自 IE10 和真实浏览器的使用 Fiddler 的原始 HTTP 请求,并进行比较。我见过一个问题,IE10 发布的东西与其他浏览器不同,而 ASP.NET 不知道如何处理它(它与 ImageButton 控件有关,所以这不适合你,但也许是类似的东西) .

标签: asp.net vb.net


【解决方案1】:

这可能会也可能不会解决问题。

.NET 4 及更早版本不知道 IE 10 是什么。它不在 .NET 知道的浏览器列表中,因此 .NET 假定浏览器是无法处理的……嗯,真的。 Javascript 和 cookie,我怀疑更多,被搞砸了。所以:

下载这个:http://www.hanselman.com/blog/content/binary/App_BrowsersUpdate.zip,取自这里:

http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx,

从这里引用:IE10 User-Agent causes ASP.Net to not send back Set-Cookie (IE10 not setting cookies)

提取文件并将它们放在应用程序的 App_Browser 目录中。重建并查看是否有效。

【讨论】:

  • 文件中有重复的键。这没用。调查 KB 机器修复。
猜你喜欢
  • 2013-01-28
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2016-03-12
  • 2016-10-10
  • 2017-03-19
相关资源
最近更新 更多