我在一个正在进行的项目中找到了这个:
<% If Session("VALUE1") <> "" Then %>
document.forms[0].action= "<%=Session("VALUE1")%>";
<% Else %>
document.forms[0].action="NewPage.aspx"
<% End If %>
当我从顶行单步执行此操作时,代码会跳过If会话(&#34; VALUE1&#34;),同时也跳过Else。这怎么可能?
答案 0 :(得分:5)
在If
和Else
块中,没有实际的服务器代码,只有标记(恰好是javascript)。由于无法执行任何操作,因此您的调试器无需停止。所以它实际上并没有跳过它们。
如果您查看渲染的输出,其中一个将最终显示在页面上。
答案 1 :(得分:1)
代码不会被跳过,只是因为您没有看到实际执行的代码。
编译页面时为该标记生成的代码如下所示:
If Session("VALUE1") <> "" Then
Response.Write(" document.forms[0].action= """)
Response.Write(Session("VALUE1"))
Response.Write(""";")
Else
Response.Write(" document.forms[0].action=""NewPage.aspx""")
End If
由于Response.Write
语句已生成且源代码中没有相应的语句,因此当您单步执行代码时,它们将被跳过。