私はasp.netの初心者です。Site.MasterのSite.Master.csで作成されたいくつかのオブジェクトを使用したいと思います。それを行う簡単な方法はありますか?
私はMVCでそれを行う方法を知っています(view(オブジェクト)を使用して)。しかし、通常のASP .net Webアプリケーションでそれを行うにはどうすればよいですか?
ファイル内の@Page
ディレクティブに、.aspx
ファイル内で宣言されたクラスがInherits="XYZ"
どこにあるかが含まれている場合は、クラスにフィールドを追加して、それに値を割り当てることができます。名前を使用するだけで、ファイル内のファイルにアクセスできます。XYZ
.cs
protected
.aspx
HttpContext.Items
プロパティを使用して、単一のリクエスト中にオブジェクトを保持することもできます。
HttpContext.Current.Items["SavedItem"] = "hello world";
そしてそれをページで使用します:
<%= ((string)Context.Items["SavedItem"]) %>
あなたが何をしたいのか正確にはわかりません。
タグのタイトルに文字列を挿入する場合は、SiteMaster.masterファイルに次のものを挿入できます。
<img src="<%= Page.ResolveUrl("~/") %>images/logo.png">
それ以外の:
<img src="images/logo.png">
最初のケースでは、アプリケーションのルートからのパスが計算されます。2番目のケースでは、相対リンクがあります。これは、サーバーがPage.ResolveUrl( "〜")関数の値を計算し、それをsrcタグに書き込むためです。
適切に定義した場合は、他のメソッドやクラスでも同じことができます。ただし、.aspxファイル(または.masterファイル)に複雑なロジックを実装することはお勧めしません。そのようなアプリケーションのテストとスタイリングで多くの困難に終わる可能性があるためです。
他のサーバータグがあります:
別の方法: JSONを使用してデータをクライアントに送信し、JavaScriptで処理することができます。このプロジェクトを見てください。
Site.Master.csのパブリックまたは保護されたプロパティまたはメソッドには、Site.Masterからアクセスできます。
しかし、aspxでc#コードを呼び出す方法は?
構築やデータバインディング構文など、<%= %>
いくつかの方法があります。
あなたが達成しようとしていることを説明するなら、それは助けになるでしょう。