次の2つの最小限の例を考えてみましょう。<form>タグがASP.NETインラインコードの「可変スコープ境界」であるのはなぜですか?
例1:
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
<body>
<form id="form1" runat="server">
<% string x = "Hello World"; %>
<%= x %>
</form>
</body>
</html>
例2:
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
<body>
<% string x = "Hello World"; %>
<form id="form1" runat="server">
<%= x %>
</form>
</body>
</html>
例1つのコンパイルと予想されるように、実施例2もコンパイルしないで実行:
CS0103:名前 ' x 'は現在のコンテキストに存在しません。 (行
<%= x %>
)
なぜですか?サーバー側のform
タグはいくつかの魔法の "可変スコープ境界"ですか?はいの場合、これはどこに文書化されていますか?