【问题标题】:aspnet/vbnet clear label after response redirect响应重定向后的 asp net/vb net 清除标签
【发布时间】:2015-02-18 17:25:31
【问题描述】:

我正在构建一个带有 vb.net 代码的 asp.net 网页。

我的网页设计为在用户单击按钮而不填写相关文本框时显示错误;下面的代码展示了它是如何工作的:

If txtOrderNumber.Text = "" Then
        lblStatus.Text = orderNoWarning
        lblStatus.CssClass = "error"
    ElseIf txtPhaseNumber.Text = "" Then
        lblStatus.Text = phaseNoWarning
        lblStatus.CssClass = "error"
    ElseIf txtOrderNumber.Text.Length > 0 AndAlso txtPhaseNumber.Text.Length > 0 Then
        Try
            Dim intOrderNumber As Integer = CInt(txtOrderNumber.Text)
            Try
                Dim intPhaseNumber As Integer = CInt(txtPhaseNumber.Text)
                Dim objWIP_Tracking As New wsWIP_Tracking.WIP_TrackingSoapClient
                Dim myResults As wsWIP_Tracking.TicketType2 = objWIP_Tracking.GetTicketType2(intOrderNumber, intPhaseNumber)
                If myResults = wsWIP_Tracking.TicketType2.AME Or _
                   myResults = wsWIP_Tracking.TicketType2.Orion Then
                    lblStatus.Text = ""
                    Response.Redirect("http://ligrptsvr2/default.aspx?Report=JoinerySummarybyComponent.rpt&username=imservices&FOLDER=Analytics&OrderNo=" & intOrderNumber.ToString & "&PhaseNo=" & intPhaseNumber.ToString & "&ParameterPrompt=yes")
                ElseIf myResults = wsWIP_Tracking.TicketType2.GS Then
                    lblStatus.Text = ""
                    Response.Redirect("http://ligrptsvr2/default.aspx?Report=JoinerySummary_GreenScreen.rpt&username=wip&FOLDER=Analytics&JobNo=" & intOrderNumber.ToString & "&PhaseNo=" & intPhaseNumber.ToString & "&ParameterPrompt=yes")
                ElseIf myResults <> wsWIP_Tracking.TicketType2.AME Or _
                   myResults <> wsWIP_Tracking.TicketType2.Orion Or _
                   myResults = wsWIP_Tracking.TicketType2.GS Then
                    lblStatus.Text = warning
                    lblStatus.CssClass = "warning"
                Else
                    Response.End()
                End If
            Catch ex As Exception
            End Try
        Catch ex As Exception
        End Try
    Else
        lblStatus.Text = ""
    End If

但是,当发生 response.redirect(重定向到新页面)时,我想清除标签(lblstatus)。代码 'lblstatus.text=""' 不起作用。当用户被重定向到新页面然后返回(使用浏览器后退按钮)时,标签仍然显示错误。 Iv 尝试禁用和启用视图状态;没有任何区别。我能做些什么来清除这个标签?

【问题讨论】:

  • “显示错误” 如果您希望我们修复它,您应该提及什么类型的错误
  • 他的数据验证有问题。
  • 如果用户点击后退按钮,浏览器将使用它的缓存来显示 HTML。让用户再次看到他已经看到的,那是他所期望和想要的。
  • 没有“错误” .. 正如 JLILI Aman 所说;这是一个验证问题。我要做的只是在重定向到新页面后基本上清除“lblstatus”。
  • @TimSchmelter 我明白你所说的逻辑。但是,当用户被重定向到新页面时;之前显示的“错误”应该不再适用(因为它们已成功重定向)因此应该清除

标签: asp.net vb.net


【解决方案1】:

请看:What happens when I press browser BACK button?

当您在浏览器中按下返回按钮时,大多数浏览器只会在重定向发生之前以最新状态显示 html 页面的缓存副本。该功能完全依赖于浏览器。因此,您的 VB 代码或视图状态几乎无能为力。

一种选择是在页面加载时使用 java-script,动态切换错误消息(当我遇到此类问题时我会这样做)。

【讨论】:

  • 如果他使用MaskedTextBox控件进行数据验证呢?
  • @JLILIAman 我不知道 MaskedTextBoxes 但谷歌建议它是 Windows 窗体的东西。
猜你喜欢
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多