Generowanie widoków w ASP.NET MVC - Scaffolding

Generowanie widoków dla operacji CRUD.


W poprzednim podrozdziale widoki zostały wygenerowane automatycznie razem z kontrolerami. Jeśli mamy kontroler i chcemy dodać tylko jeden, określonego typu widok, klikamy PPM w oknie z kontrolerem i wybieramy opcje Add View (Rys. 2.48).

Dodawanie widoku w MVC

Otwiera się okno dialogowe, w którym wpisujemy nazwę widoku, wybieramy silnik widoku a więc RAZOR, następnie mamy do wyboru opcje strongly-typed view, która pozwala na wygenerowanie widoku dla konkretnego modelu. Wybieramy nasza klasę z modelem a więc Kurs, kolejnym krokiem jest wybranie szablonu dla widoku (Scaffold template).

Do wyboru mamy 6 szablonów widoków (Rys. 2.49):

  • Create - widok dla operacji Create,
  • Delete - widok dla operacji Delete,
  • Details - widok wyświetlający szczegóły o kursie,
  • Edit - widok dla operacji edycji,
  • Empty - pusty widok,
  • List - lista wszystkich kursów z naszego modelu.

szablony widoku w MVC

Po wyborze szablonu, mamy do wyboru opcję Reference script libraries. Opcja ta określa czy mają zostać dołączone do widoku skrypty jQuery do walidacji. Jeśli skrypty są ładowane w sekcji <head> w widoku _Layout.cshtml należy odznaczyć tę opcję.

Kod dodany do widoku po zaznaczeniu opcji Reference script libraries:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

Na samym końcu mamy do wyboru jedną z dwóch opcji (Rys. 2.50):

  • Create as a partial View - tworzy widok partial, a więc dla danego widoku nie zostanie załadowany szablon strony i zostanie zwrócona tylko część z danego widoku,
  • Use layout or master page - wybieramy jaki szablon strony ma być załadowany (domyślnie jest to _Layout.cshtml)

wybór typu widoku w MVC

Wygląd widoku wygenerowanego, jako Partial View (Rys. 2.51):

Widok partial w MVC

Ten sam widok wygenerowany, jako zwykły widok (Rys. 2.52):

Widok w ASP.NET MVC

Komentarze facebook (polub nasz profil na FB aby je zobaczyć):