ASP.NET Web フォーム ページ フレームワーク コンポーネントは、Web ページを動的に生成するために使用できるスケーラブルな共通言語ランタイム プログラミング モデルです。 ASP.NET Page Framework コンポーネントは ASP の論理的進化であり (ASP.NET によって提供される構文は既存のページと互換性があります)、以前のモデルの多くの重大な欠陥に対処するために特別に設計されました。特に、共通の機能をカプセル化する再利用可能な UI コントロールを作成および使用する機能を提供するため、ページ開発者が記述する必要があるコードの量が削減されます。これにより、開発者は明確かつ体系的にページ ロジックを構築できます (「複雑なコード」ではありません)。 ); 使用する開発ツールは、強力な WYSIWYG (表示されているものがそのまま得られる) ページ デザイン サポート機能を提供します (既存の従来の ASP コードは不透明です)。この記事では、ASP.NET ページの機能に関する基本的な知識を紹介します。
最初の ASP.NET ページの作成
ASP.NET ページは、拡張子 .aspx を持つテキスト ファイルです。ページはコードとタグで構成され、サーバー上で動的にコンパイルおよび実行され、要求元のクライアント ブラウザ (またはデバイス) 用の表示コンテンツを生成します。これらは、IIS 仮想ディレクトリ ツリーの下に展開できます。ブラウザ クライアントが .aspx リソースを要求すると、ASP.NET ランタイムはターゲット ファイルを分析し、それを .NET フレームワーク クラスにコンパイルします。その後、このクラスを使用して要求を動的に処理できます (.aspx ファイルは初めてアクセスされたときにコンパイルされ、コンパイルされた型インスタンスは将来の複数のリクエストで再利用できます)。
ASP.NET ページを作成するには、HTML ファイルのコードを変更する必要はありません。拡張子を .aspx に変更するだけです。たとえば、次の例は、ユーザーの名前とカテゴリを収集し、ユーザーがボタンをクリックするとフォームを元のページに戻す単純な HTML ページを示しています
。
<h3> 名前: <input id="名前" type=text>
カテゴリ:<select id="Category" size=1>
<オプション>心理学</オプション>
<オプション>ビジネス</オプション>
<オプション>人気コンプ</オプション>
</選択>
<入力タイプ=送信値=「ルックアップ」>
</h3>
</form>
注: [検索] ボタンをクリックしても何も起こりません。これは、.aspx ファイルには静的な HTML のみが含まれているためです (動的コンテンツは含まれていません)。したがって、同じ HTML がクライアントに送り返され、フォーム フィールド (テキスト ボックスとドロップダウン リスト) の内容が失われます。
単純なコードをページに追加する
ASP.NET によって提供される構文は、ASP ページと互換性があります。 <% %> コード レンダリング (レンダー) ブロックをサポートしており、.aspx ファイル内の HTML コンテンツと混合できます。これらのコード ブロックは、ページが表示されるときに厳密に実行されます。
次の例は、HTML で <% %> レンダリング ブロック (毎回フォント サイズを大きくする) を使用する方法を示しています。
<form action="intro2_vb.aspx" method="post">
<h3> 名前: <input id="名前" type=text>
カテゴリ:<select id="Category" size=1>
<オプション>心理学</オプション>
<オプション>ビジネス</オプション>
<オプション>人気コンプ</オプション>
</選択>
</h3>
<入力タイプ=送信値=「ルックアップ」>
<p>
<% Dim I As Integer
I=0~7%の場合>
<font size="<%=I%>"> ASP.NET へようこそ </font> <br>
<%次の%>
</form>
注意: 上記の例の <% %> コード ブロックは、スクリプト エンジンによって解釈されず、実際にコンパイルされるという点で ASP とは異なります。これにより、実行時の実行パフォーマンスが向上します。
ASP.NET ページ開発者は、<% %> コード ブロックを使用して、HTML 出力情報を動的に変更できます。たとえば、次のコードは、<% %> コード ブロックを使用して、クライアントから返された結果を解釈する方法を示しています。
<form action="intro3_vb.aspx">
<h3> 名前: <input name="名前" type=text value="<%=HttpUtility.HtmlEncode(Request.QueryString("Name"))%>">
カテゴリ: <select name="カテゴリ" size=1>
<%
Dim I を整数として指定する
文字列としての Dim Values(2)
値(0) = 「心理学」
値(1) = 「ビジネス」
値(2) = "popular_comp"
I = 0 から Values.Length - 1 の場合
%>
<% If (Request.QueryString("Category") = Values(i)) %>
<選択したオプション>
<% その他 %>
<オプション>
<%End If %>
<%=値(i)%>
</オプション>
<%次の%>
</選択>
</h3>
<input type=submit name="ルックアップ" value="ルックアップ">
<p>
<% If (Not Request.QueryString("Lookup") = Nothing) %>
こんにちは、<%=HttpUtility.HtmlEncode(Request.QueryString("Name")) %> さん、選択しました: <%=HttpUtility.HtmlEncode(Request.QueryString("Category")) %>
<%End If %>
</form>
注意: <% %> コード ブロックは、ASP.NET ページから返されるテキスト出力情報をカスタマイズする強力な方法を提供しますが、明確な HTML プログラミング モデルは提供しません。上記の例は、<% %> コード ブロックのみを使用する開発者がページの状態を管理し、送信される値を自分でインターセプトする必要があることを示しています。