2009-05-21 17 views
29

が含まれています。サーバー側の従来のASPメソッドにはASP.NETでの作業が含まれていますが、これは推奨される方法ではないという印象を受けます。同じ効果を達成するにはどうすればいいと思いますか?ASP.NETに相当するサーバー側には

これは私が現時点でそれをやっている方法です:
<!-- #include file ="functionlib.aspx" -->

+0

あなたの質問のように特定されていないが、あなたはこの1つは役に立つかもしれません:http://stackoverflow.com/questions/23899/best-practices-for-refactoring-classic-asp –

答えて

34

このような効果を提供するオプションがいくつか用意されていますが、その方法は異なります。

  • ユーザーコントロール(た.ascx)
  • マスターページ(管理組織のビー玉)
  • サーバー側のコントロール(.dllファイル)
  • クラスライブラリ(.dllファイル)
  • にApp_Codeクラス(.csファイル/。 VB)

それぞれが異なるものを達成するために、異なるために使用されています。それはあなたが本当にやろうとしていることに依存します。あなたのインクルードファイルの名前を考えれば、あなたのページのコンテキスト内で使われるライブラリ関数をインクルードしようとしていると思います。

その結果、あなたはメソッドを含むクラスライブラリを書いて、あなたのアプリケーション/ ASPXにインポートしたいです。

あなたがコンテンツを異なるために体を提供するために、レイアウト作業のほとんどを行いますページをテンプレート化を見ているなら、あなたはマスターページに興味があるでしょう。

あなたは多くのページで使用することができるテンプレートのコントロールを見ている場合は、ユーザーコントロールの後にあることになるだろう。

多くのプロジェクトで多くのユーザーが使用できるテンプレートコントロールを見ている場合は、サーバーサイドコントロールが表示されます。

あなたはクラス/メソッドの図書館で探しているなら、あなたはクラスライブラリを開発したり、それを呼び出して最初の時間をコンパイルJITすることができますにApp_Codeのクラスを使用します。このは、を古典的なASPのように見なすことができますが、実際にはクラスライブラリのクラスのように機能します。クラスライブラリへの参照を必要とせずに、コードビハインド内またはaspx/ascxコードの<%%>タグ内から呼び出すことができます。

実際には「インクルード」自体は使用しませんが、ツールキットのこれらの各ツールでは、さまざまなシナリオで同様の概念を提供できます。開発者は、Webページのページライフサイクル全体を別々に操作します。 ASP.NETは従来のASPとは非常に異なる獣です。それは本当に異なる視点/アプローチをとり、違いを理解するために多少の忍耐を要するでしょう。

+2

クラスライブラリよりも古典的なASPモデルに近いApp_Codeクラスを忘れないでください。 –

+0

ああ、私はそれらを忘れてしまった...ありがとう – BenAlabaster

8

you'eは、ASP.NET MVCを使用している場合、Html.RenderPartialがここにあなたの友達です。

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial.aspx

部分図がた.ascxまたは.aspxのように実装し、あなたの「主」ページで上記の呼び出しを置くことができます基本的に「この部分ビューからの出力を取得し、ここでそれをレンダリングする」と言います。

パブリックビューでは、プライマリビューがコントローラから受信したViewDataを利用できます。あなたが見てするために必要なものMasterPagesの全体のコンセプトがあるよう

+0

のみあなたがASP.NET MVCにいる場合。 –

+1

Er .....はい。何らかの理由で私は質問に "MVC"と書かれています。人々はまだ古いスキルのASP.NETをやっているのですか? ;-) –

+0

lol @ Martin ...あ、そうです。 MVCは、誰もが来週の使用をやめることを止めるただの一時的なものです。宗教的な戦争を始める;) – BenAlabaster

1

が鳴ります。

関数やその他のユーティリティ(HTMLコンテンツではありません)をインポートするだけの場合を除きます。これが当てはまる場合(コードビハインドモデルを使用している場合)、.vbページの上部にimportsコマンドを使用して適切なファイルまたは名前空間を含めることができます(C#に応じて調整してください)。

11

<% Response.WriteFile("myFile.aspx) %>

参照:https://support.microsoft.com/kb/306575

+0

シンプルで効果的。好き :)。 –

+11

インクルードファイルが '.aspx'で終わっても、asp.netエンジンで処理されません – mxmissile

関連する問題