Edycja i dodawanie danych – ASP .NET MVC część 3

W moim ostatnim artykule zbudowałem aplikację, która pozwala na przeglądanie danych zgromadzonych w bazie danych. W tej części zajmę się zapewnieniem możliwości wprowadzania i edycji danych w ASP .NET MVC.

Aplikację z ostatniego artykułu rozszerzę o scenariusz dodawania wydarzeń, podobną funkcjonalność można bez problemu zaimplementować dla kategorii :

image

image

Rozszerznie modelu

Aby sprawniej dodawać wydarzenia, rozszerzę klasę WydarzeniaDataContext o nową metodę:

image

Refaktoryzacja kontrolera

Przed dalszymi modyfikacjami rozsądnie jest rozdzielić kontroler WydarzenieController na 2; kontrolery, jeden obsługujący tylko kategorie, natomiast drugi tylko wydarzenia:

image

z WydarzeniaController usunąłem akcję Kategorie i przeniosłem ją do nowego kontrolera KetagorieController, przy okazji zmieniłem nazwę akcji na Lista – zmieniłem też odpowiednio wywoływany widok:

image

Stworzyłem także odpowiedni folder dla widoku, tak żeby zgodnie z sugestiami z poprzedniego artykułu każdy kontroler miał osobny folder dla swoich widoków:

image

Nowe akcje w kontrolerze wydarzeń (dodawanie wydarzeń)

Aby obsłużyć wyświetlanie formularza pozwalającego na dodanie nowego wydarzenia trzeba zdefiniować wpierw odpowiednią akcję, trzeba zwrócić uwagę na wyświetlanie listy kategorii:

image

Użyłem tutaj nowej klasy do przekazywania danych do widoku WydarzenieNoweViewData:

image

Pozwala ona na przekazanie do widoku listy kategorii. Taka metoda jest wygodna, szczególnie gdy trzeba przekazać wiele list.

W następnym kroku trzeba zdefiniować akcję dodającą nowy wpis do bazy, która będzie odbierać dane z wypełnionego formularza akcji Nowe, nazwę ją Dodaj:

image

Akcja tworzy nowe wydarzenie i ładuje do niego dane przesłane z formularza przy pomocy metody UpdateFrom. Metoda UpdateForm jednak nie zadziałała dla mnie dla wartości DateTime, stąd mały hack. Po dodaniu i zapisaniu wydarzenia, następuje przekierowanie do listy wydarzeń dla kategorii.

Ogólny przepływ danych pomiędzy widokiem a kontrolerem wygląda tak:

image

Widok służący do dodawania nowych wydarzeń. Skorzystałem z metody dostępnej w MVCToolkit Html.Select, żeby wyświetlić listę kategorii:

image

Edycja wydarzeń

Przy edycji wydarzeń, należy postąpić analogicznie, pełny przykład znajduje się w kodzie Ľródłowym na końcu artykułu.

Podsumowanie

Z ASP .NET MVC tworzenie aplikacji webowych może być o wiele prostsze i szybzej. Aplikacja napisana przezemnie oczywiście jest tylko testowa, służy pokazaniu jak działa MVC. W wersji produkcyjnej należałoby dodać jeszcze walidacje danych.

Pełna aplikacja jest do ściągnięcia tutaj.