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 :
Rozszerznie modelu
Aby sprawniej dodawać wydarzenia, rozszerzę klasę WydarzeniaDataContext o nową metodę:
Refaktoryzacja kontrolera
Przed dalszymi modyfikacjami rozsądnie jest rozdzielić kontroler WydarzenieController na 2; kontrolery, jeden obsługujący tylko kategorie, natomiast drugi tylko wydarzenia:
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:
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:
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:
Użyłem tutaj nowej klasy do przekazywania danych do widoku WydarzenieNoweViewData:
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:
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:
Widok służący do dodawania nowych wydarzeń. Skorzystałem z metody dostępnej w MVCToolkit Html.Select, żeby wyświetlić listę kategorii:
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.