[解決済み] Razor _layout.cshtml のファイル名の先頭にアンダースコアがあるのはなぜですか?
質問
デフォルトのASP.NET MVC 3プロジェクトでは、レイアウト&部分cshtmlファイルはアンダースコアで始まります。
-
_viewstart
-
_Layout
-
_LogOnPartial
なぜこのような規約があるのか、また何に使うのか?この規約に従わなければならないのでしょうか?
フレームワークでは
.cshtml
ファイルがアンダースコアで始まる場合はどうなりますか?
解決方法は?
Razor は ASP.NET Web Pages (WebMatrix) 用に開発されたもので、MVC のような Views フォルダと Routing に関する保護機能は組み込まれていません。Web Pages のレイアウトページは、直接提供されることを意図していないため、アンダースコアが前に付いています。また、Web Pagesフレームワークは、ファイル名にアンダースコアを含むファイルが直接リクエストされないように設定されています。Webページ内の他の.cshtmlファイルは、一般に閲覧可能であることが必要です。これらは、.aspや.phpファイルに相当するものです。
ASP.NETチームは、Web PagesはASP.NET開発の出発点であり、いずれはMVCへの移行につながるはずだと述べています(移行を希望する人のために)。その一環として、Web PagesからMVCへの移行を可能な限り容易にすることを意味しています。そのため、Web ページで確立された命名規則を MVC Razor ファイルに引き継ぐことは理にかなっています。
そこで は は、ファイル名の前にアンダースコアを付ける技術的な理由であり、MVCには関係ありません。
[2018年10月UPDATE】の記事]
新しい ASP.NET Core Razor Pages フレームワークでは (バージョン 2.1 とは別に)、起動時にルートが生成される際、先頭にアンダースコアがあるファイルは無視されます - たとえそれが
@page
ディレクティブを使用することで、通常ルート化可能な Razor Page となります)。このため、Razor Pages アプリケーションでは、レイアウトファイルや部分ファイルにアンダースコアを付けることは、ブラウズされることを意図していないのであれば、理にかなっています。
関連
-
ASP.NET CoreでURLを設定する5つの方法
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
認証プロセスの記録にjwtを使用したネット
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] Razor View Page で名前空間をインポートするにはどうしたらいいですか?
-
[解決済み】ASP.NET MVC 3 razor ViewStart ファイルで異なるレイアウトを指定するには?
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合
-
[解決済み] ASP.NET IdentityのデフォルトのPassword Hasher - その仕組みと安全性とは?
-
[解決済み] Asp.Net 4でValidateRequest="false "が動作しない。
-
[解決済み] MVC 3:ajax経由でロードされたときに、そのレイアウトページなしでビューをレンダリングするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
30分でわかるコング経由の.NETゲートウェイ
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
CS0234 名前空間 'Microsoft.AspNet' に型または名前空間名 'Mvc' が存在しない (あなたは
-
[解決済み] ASP.NET MVCコントローラは、Imageを返すことができますか?
-
[解決済み] イベントログへの書き込み時にSystem.Security.SecurityExceptionが発生する。
-
[解決済み] Server.UrlEncode vs. HttpUtility.UrlEncode
-
[解決済み] IIS Expressのweb.configにMIMEマッピングを追加する
-
[解決済み] ASP.NET Web API - PUT & DELETE 動詞が許可されない - IIS 8
-
[解決済み] フォーム認証のタイムアウトとsessionStateのタイムアウトの比較
-
[解決済み] WatiNかSeleniumか?[クローズド]