Używam _viewstart.cshtml, aby automagicznie przypisać ten sam układ Razor do moich widoków.
To martwy prosty plik w katalogu głównym mojego folderu Widoki, który wygląda następująco:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Jest to bardziej SUCHE niż dodanie dyrektywy @Layout do każdego widoku.
Stanowi to jednak problem w przypadku widoków częściowych Razor , ponieważ uruchamiają one zawartość _viewstart.cshtml i dlatego niepoprawnie przypisują sobie układ, co sprawia, że nie są już częściowe.
Oto hipotetyczny projekt przedstawiający plik _viewstart.cshtml, udostępniony plik _layout.shtml i częściowy widok („AnonBar.cshtml”).
Obecnie sposobem na obejście tego jest dodanie następującego wiersza do każdego widoku częściowego:
@{
Layout = "";
}
Wydaje się, że to zły sposób na określenie poglądu jako częściowego w Razor. (Należy pamiętać, że w przeciwieństwie do mechanizmu wyświetlania formularzy internetowych rozszerzenie pliku jest takie samo dla widoków częściowych).
Inne opcje, które rozważałem, ale są jeszcze gorsze:
- Umieszczanie wszystkich widoków częściowych we wspólnym folderze, aby mogły udostępniać wspólny plik _viewstart.cshtml. Łamie to konwencję widoków znajdujących się w tym samym folderze, co ich kontroler.
- Nie używam częściowych widoków.
Czy jest to coś, co jest nadal opracowywane przez zespół silnika widoku Razor, czy też brakuje mi podstawowej koncepcji?