ASP.NETでは、初回動作またはタイムスタンプが変わったときににコンパイルされ、アセンブリ(DLL)を生成します。この挙動はJavaのJSPの動作ににています。
今はExpress Editionがあるので、環境が用意できないことはまれだと思いますが、コンパイルしたモジュールを入れるのが困難な環境であったり、ちょっと変更してはためしたい場合、自動的にコンパイルする方法は便利です。
実装例はこんなかんじ。この例では、入力されたテキストボックスの値の和を算出します。
<%@ Page Language="vb" %>
<script runat="server">
Sub Page_Load
End Sub
Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
lblResult.Text = (Convert.ToInt32(f1.Text) + Convert.ToInt32(f2.Text)).ToString()
End Sub
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Test</title>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
</HEAD>
<body>
■Test
<hr>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="f1" runat="server" text="2"/>+
<asp:TextBox id="f2" runat="server" text="1"/>=
<asp:Label id="lblResult" runat="server" text="hoge"/>
<br/><asp:button id="btnCalc" runat="server" Text="計算" OnClick="btnCalc_Click" />
</form>
</body>
</HTML>
<script runat="server">
Sub Page_Load
End Sub
Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
lblResult.Text = (Convert.ToInt32(f1.Text) + Convert.ToInt32(f2.Text)).ToString()
End Sub
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Test</title>
<META http-equiv="Content-Type" content="text/html; charset=shift_jis">
</HEAD>
<body>
■Test
<hr>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="f1" runat="server" text="2"/>+
<asp:TextBox id="f2" runat="server" text="1"/>=
<asp:Label id="lblResult" runat="server" text="hoge"/>
<br/><asp:button id="btnCalc" runat="server" Text="計算" OnClick="btnCalc_Click" />
</form>
</body>
</HTML>
0 件のコメント:
コメントを投稿