2017-10-19 18 views
0

ASP.NET MVCを使用してWebアプリケーション全体を構築し、レイアウトを指定する_ViewStart.cshtmlページがあります。レイアウトを使用しないASP.NET MVCの静的HTMLページ

これは私のサイト全体に最適です。しかし、私はただ一つのプロトタイプの静的なHTMLページを持っています。私はちょうどディレクトリにダンプする必要があります。

私はHTMLをCSHTMLファイルにコピーし、それをコントローラで近づけました。問題は、このページに行くとレイアウトが使用されていることです。

レイアウトを持たないスタティックなスタンドアロンコンテンツとしてこのページを配信できるように設定するにはどうすればよいですか?_ViewStart

答えて

4

デフォルトでは、すべてのビューは、_Viewstart.cshtmlファイルで指定されているとおり、~/Views/Sharedのレイアウトを使用します。ビューが実行されるたびに、_Viewstart.cshtml内のコードが実行され、ビューのレイアウトが設定されます。

特定のビューのレイアウトを実行/含めない場合は、ビューで明示的にレイアウトをnullと設定できます。次のコードをビューに追加します。

@{ 
    Layout = null; 
} 

それはあなたのcshtmlファイル内の静的なHTMLであっても、ユーザーは/直接(通常のHTMLページ/ HTMページのように)このビューにアクセスべきではありませんしません、ということを覚えておいてください。これは、このcshtmlビューを返すアクションメソッド経由でルーティングする必要があります。

Viewメソッドの代わりにPartialViewメソッドを使用することもできます。 PartialViewメソッドを使用してビューをレンダリングする場合、フレームワークは_ViewStart.cshtmlを実行しないため、同じ結果が得られます。あなたのページの一部のためのマークアップをレンダリングしたい場合

public ActionResult About() 
{ 
    return PartialView(); 
} 

PartialViewは本当に便利です(例:モーダルダイアログなどのための内容)あなたの静的ビューページのセットレイアウト=ヌルで

0

。 Like: @{Layout = null;}

関連する問題