1. ホーム
  2. .net

[解決済み】_ViewStart.cshtmlレイアウトファイルはどこで、どのようにリンクされていますか?

2022-04-18 13:23:07

質問

以下は、デフォルトのMVC 3テンプレートのAbout.cshtmlです。

@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
     Put content here.
</p>

私は、_ViewStart ファイルへの参照が About.cshtml しかし、明らかにそうではありません。

で調べました。 global.asaxweb.config が、どのようにしたら About.cshtml ファイルは、_ViewStartファイルからのレイアウトと"link"されています。

すべてが期待通りに動作しています。ただ、ボンネットの下で何が起こっているのか知りたいのですが...。

解決方法は?

から ScottGuのブログ :

<ブロッククオート

ASP.NET MVC 3 Betaリリースから、ファイル「ASP.NET MVC 3 Beta」を追加できるようになりました。 の下に _ViewStart.cshtml (VBの場合は _ViewStart.vbhtml) という名前のファイルを作成します。 \を使用します。

ViewStart ファイルを使用すると、共通のビューコードを定義することができます。 は、各ビューのレンダリング開始時に実行されるようにしたい。 例えば この場合、_ViewStart.cshtml ファイルに次のようなコードを記述します。 プログラムによって、各ViewのLayoutプロパティに SiteLayout.cshtml ファイルをデフォルトで使用します。

このコードは各Viewの開始時に実行されるので、もはや 個々のビューファイルで明示的にレイアウトを設定する必要はありません。 (ただし、上記のデフォルト値をオーバーライドする場合を除く)。

重要:_ViewStart.cshtmlではコードを書くことができるので レイアウトの選択ロジックを、オプションでよりリッチにすることができます。 基本的なプロパティセットです。 例えば、Layout テンプレートを変更することができます。 どのようなデバイスからサイトにアクセスするかによって、使用するデバイスが異なります。 というように、携帯電話やタブレット端末に最適化されたレイアウトと PC/ノートPC用に最適化されたレイアウト。 あるいは 複数の顧客で利用されるCMSシステムや共通共有アプリなど 顧客によって(または顧客によって)異なるレイアウトを選択することができます。 アクセスする人の役割

これにより、UIの柔軟性を大幅に向上させることができます。 また ビューロジックを一度書けば、複数の場所で繰り返し書く必要はありません。 を使用します。

以下もご参照ください。 この .