2012-05-02 11 views
2

私はRazor Webページを使用しています(ではなく MVC)。私は私のウェブアプリケーション全体で使用される剃刀レイアウトページを持っています。Razor(Webページ)RenderBodyより前にレイアウトページを実行

コード実行の問題があります。通常、サブページにPage.Title(例)を設定すると、この変数にレイアウトページが実行されるまでに入力されるため、レイアウトにページのタイトルを配置することができます。それはいいです。しかし、私はそれを逆にする必要があります。サブページのコードが実行される前に、すべてのページに対していくつかのコードを実行したいと思います。

すべての単一のサブページで参照する必要はなく、サブページがコードを実行する前に実行する必要がある、1つのコード片を実行できるようにします。私は...私はカミソリのWebページのライフサイクルに新たなんだと欠けていること、これを行うには非常にシンプルかつ明白な方法があります確信している

例:私はレイアウトに自分のサイト名を設定し ページ。しかし何らかの理由で、私はサブページ、サブサブページなどの場所の束の中にサイト名を表示したいのですが、どうすればこれについて最善を尽くすでしょうか?

私はを知っています_PageStart.cshtmlこれはフォルダベースでフォルダの前にコードを実行するために使用でき、Page.Whatever変数などを設定することができ、これは私の目的のために機能します。しかし、これが正常なプロセスかどうか、またはこれが悪いアプローチであるかどうかを理解するのは苦労しています。 Razor Web Pagesのこの側面については、Web上であまりにも多くはないようです。

+0

私は同じ質問があります。私は自分のページに変数を設定したい。私のレイアウトページのプロパティ、次に私の子供ページの変数にアクセスしてください... –

+0

こんにちはリック。私が言ったように、私は_PageStart.cshtmlでたくさんのものをやっただけです。 Webサイトのさまざまな部分で異なるPage変数が必要な場合は、フォルダ構造内の異なるレベルに_PageStart.cshtmlを配置できます。誰も私がこれがベストプラクティスかどうかという答えを私に与えてくれた人は誰もいません(誰もRazor Web Pagesについてよく知っているようです)。 – Zac

+0

私が見つけたことから、ページは常にレイアウトページの前に実行されます。 _pageStartがこれを行うための意図された場所であるようです。 –

答えて

0

Webユーザーコントロールが必要です。

+0

ユーザーコントロール(ascx)はWebフォーム固有のものだと思っていました。私はRazor Web Pagesを使用しています。どのように私はそれを消費するだろうか?これは本当に解決策ですか? – Zac

0

だけ設定レイアウト:

@{ 
    Layout="~/Master.cshtml"; 
} 
関連する問題