Global.asax出错

时间:2013-06-06 14:51:21

标签: asp.net

这是Global.asax中代码的一部分我在下面标记的行上遇到运行时错误(无效代码)。想不通为什么?

  If Not Request.RawUrl.IndexOf("crm/default.aspx") > 0 Then
            Dim sb As New System.Text.StringBuilder
            sb.Append("<DIV ID=""splashScreen"" STYLE=""WIDTH: 100%; HEIGHT: 100%; POSITION: absolute; Z-INDEX: 9999"">")
            sb.Append("<TABLE class=""page_border"" width=""100%"" height=""100%"" cellSpacing=""0"" cellPadding=""0"">")
            sb.Append("<TR>")
            sb.Append("<TD WIDTH=""100%"" HEIGHT=""100%"" ALIGN=""CENTER"" VALIGN=""MIDDLE"" class=""page_content"">")
            sb.Append("&nbsp;&nbsp;")
            sb.Append("Loading page.  Please wait ...")
            sb.Append("&nbsp;&nbsp;<br><br>")
            sb.Append("<IMG SRC=""/TOrders/library/media/images/wait.gif"" BORDER=1 WIDTH=75 HEIGHT=15>")
            sb.Append("</TD>")
            sb.Append("</TR>")
            sb.Append("</TABLE>")
            sb.Append("</DIV>")

      -- Getting a Run time Error on this line --------

            sb.Append("<script language=""javascript"">var k=document.getElementById(""splashScreen"");</script>")

      ---Even this line appears with squiggly line in the editor--

            sb.Append("<%Response.Flush%>")

         -----------------------------------------------------

            Response.Write(sb.ToString)

        End If

1 个答案:

答案 0 :(得分:0)

@CM Kanode是对的 - 我之前从未见过这种行为,但不知何故,脚本标签正在杀死它 - 可能是一个安全功能。即使你在一个字符串里面,字符串的</script>部分也会以某种方式杀死它。拆分可以解决这个问题。这里的另一个替代方法是为您的全局使用代码隐藏文件,而不是将代码保留在.asax文件中 - 然后您处于纯VB环境中,而不是在ASP.NET标记中。

@Igor也是正确的 - <%Response.Flush%>行中的代码块无效 - 即使你在VB.NET字符串中,你仍然在技术上处于标记文件中,{{1使它看起来像是一个代码块 - 你不能在这样的ASAX文件中有代码块。

正如@Igor所指出的那样,无论如何都要将其写入响应是没有意义的,因为这是一个服务器功能,而不是使其成为实际响应的东西。

因此,您需要处理这两个问题,例如:

<% %>