这是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(" ")
sb.Append("Loading page. Please wait ...")
sb.Append(" <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
答案 0 :(得分:0)
@CM Kanode是对的 - 我之前从未见过这种行为,但不知何故,脚本标签正在杀死它 - 可能是一个安全功能。即使你在一个字符串里面,字符串的</script>
部分也会以某种方式杀死它。拆分可以解决这个问题。这里的另一个替代方法是为您的全局使用代码隐藏文件,而不是将代码保留在.asax文件中 - 然后您处于纯VB环境中,而不是在ASP.NET标记中。
@Igor也是正确的 - <%Response.Flush%>
行中的代码块无效 - 即使你在VB.NET字符串中,你仍然在技术上处于标记文件中,{{1使它看起来像是一个代码块 - 你不能在这样的ASAX文件中有代码块。
正如@Igor所指出的那样,无论如何都要将其写入响应是没有意义的,因为这是一个服务器功能,而不是使其成为实际响应的东西。
因此,您需要处理这两个问题,例如:
<% %>