最近、MVC3プロジェクトにいくつかの変更を加えました。
私がそれを実行すると、ビューにはSite.cssのようなファイルが含まれません。 Index()ActionControllerをデバッグすると、_Layout.cshtmlなどのファイルを含めずに、ビューに直接ジャンプします。だから私は白い背景のビューを取得し、メニューなどはありません。
Global.asax.csファイルには、次のコードが含まれています。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default2", // Route name
"{controller}/{action}/{id}/{page}", // URL with parameters
new { controller = "Survey", action = "DisplayQuestions", id = "", page = "" }
);
}
コントローラアクションのブレークポイントがヒットしている場合、ルートが間違っている可能性がありますが、それが_Layout.cshtmlがロードされない理由ではありません。
チェックするいくつかの事柄:
ビューの上部に、_Layout.cshtmlを非アクティブ化するようなものが含まれていますか?
@{
Layout = "";
}
_ViewStart.cshtmlは、_Layout.cshtmlをアクティブ化する次のコードでまだ存在していますか?
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
「Default2」ルートを「Default」ルートの上に移動します。
デフォルトルートはより一般的であるため、Default2を最初にする必要があります
また、ビュー内で、使用するレイアウトを指定していることを確認してください
@{
Layout = "yourlayoutpage.cshtml"
}
インデックスビューのlayoutプロパティを削除したようです。
@{
Layout = "~/Views/Shared/_Layout.cshtml"
}