Poprawny sposób korzystania z viewstart.cshtml i częściowe widoki?

Używam _powiedźstart.cshtml aby automatycznie przypisać ten sam układ Razor do moich widoków.

Jest to martwy prosty plik w katalogu głównym folderu Moje widoki, który wygląda tak:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Jest to bardziej suche niż dodawanie dyrektywy @ Layout do każdego widoku.

Stanowi to jednak problem dla widoków Razor częściowych, ponieważ uruchamiają one zawartość _viewstart.cshtml i dlatego błędnie przypisują sobie układ, co sprawia, że, już nie częściowy.

Oto hipotetyczny projekt, pokazujący _viewstart.plik cshtml, współdzielony _layout.plik shtml, oraz widok częściowy ("AnonBar.cshtml").

Obecnie sposób, w jaki to obejdę, polega na dodaniu następującej linii do każdego częściowego widoku:

@{
    Layout = "";
}

To chyba zły sposób na oznaczenie widoku jako częściowego w Razor. (Zauważ, że w przeciwieństwie do silnika widoku 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 częściowych widoków we wspólnym folderze, aby mogły współdzielić wspólny _viewstart.cshtml. Łamie to konwencję widoków znajdujących się w tym samym folderze co ich kontroler.
  • nie używa częściowych widoków.

Czy jest to coś, co wciąż jest udoskonalane przez zespół Razor view engine, czy brakuje mi fundamentalnej koncepcji?

Author: Community, 2010-11-02

1 answers

Jeśli return PartialView() z kontrolerów (zamiast return View()), _viewstart.cshtml nie zostanie wykonane.

 232
Author: marcind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-02 23:01:15