1. ホーム
  2. asp.net-mvc

[解決済み] Razor View レイアウトなし

2023-03-20 21:49:15

質問

どうして Layout = null; を表示した場合、デフォルトのレイアウトで表示されるのでしょうか?

それを止めるためのトリックはありますか?

以下は、レイアウトなしの私の表示です。

@{
    Layout = "";
}

<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
    @{Html.RenderAction("Head", "Header");}
</head>
<body>
    <div>
        Home
    </div>
</body>
</html>

レンダリング出力はこちら!

<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" />
    <script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
    <script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
</head>

<body>
    header
</body>
</html>
</head>
<body>
    <div>
        Home
    </div>
</body>
</html>

どのように解決するのですか?

あなたは _ViewStart.cshtml をこのディレクトリに作成していますか?私も_ViewStartを使ってみたところ、あなたと同じような問題が発生しました。そこで、_mydefaultviewの名前を変更し、移動して Views/Shared ディレクトリに移動し、cshtmlファイルでビューが必要ないところはビューなし、それ以外は_mydefaultviewを指定するように切り替えました。なぜこれが必要だったのかはわかりませんが、うまくいきました。