最近、モバイル ページを表示しようとすると、次のような問題が発生します。
次のセクションは定義されていますが、レイアウト ページ "~/Views/Shared/_Layout.cshtml" 用にレンダリングされていません: "head"。
これはランダムに発生します。通常、私のアプリは正常に動作しますが、この例外がスローされ、ユーザーがページを表示できない場合が数回あります。
私の調査では、これはモバイル ビューにアクセスしようとしたときに発生するようです。
デスクトップ ビュー用とモバイル ビュー用の 2 つの異なるレイアウトがあります。デスクトップ レイアウトには、セクション ヘッドのレンダリングがあります。
@RenderSection("head"、必須: false)
モバイルビューにはそのようなセクションはありません。
したがって、明確にするために、私のモバイル/デスクトップ ビューには次のパターンがあります。
- モバイル: ビューには head セクションがなく、_Layout.Mobile.cshtml は head セクションをレンダリングしません。ビューには、ディレクティブ Layout = "~/Views/Shared/_Layout.Mobile.cshtml" があります。
- デスクトップ ビューにはヘッド セクションがあり、_Layout.cshtml はヘッド セクションを次のコードでレンダリングします: @RenderSection("head", required: false)。ビューには、ディレクティブ Layout = "~/Views/Shared/_Layout.cshtml" があります。
そのため、レンダリングするビューとレイアウトを検出すると、モバイル ビューではなくデスクトップ レイアウトを使用するか、またはその逆のように見えます。
光を当てることができるような問題の経験はありますか?
ありがとう!