Modele danych walidacja widoki zorientowane na model

Podobne dokumenty
Laboratorium 7 Blog: dodawanie i edycja wpisów

Baza danych sql. 1. Wprowadzenie

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Backend Administratora

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Katalog książek cz. 3: Web Service

Podręcznik Użytkownika LSI WRPO

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Analizując żądania za pomocą narzędzi developerskich można odczytać listę preferowanych języków, jak na poniższym przykładzie.


Walidacja danych w ASP.NET MVC

Elektroniczny Urząd Podawczy

Sesje i logowanie. 1. Wprowadzenie

25 lat. Generator wniosków o dofinansowanie ze środków krajowych. Katarzyna Jakubowska Główny specjalista DepartamentRozwoju Systemów Informatycznych

Podstawy technologii WWW

Dokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja

IIIIIIIIIIIIIIIMMIMMIII

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

REFERAT O PRACY DYPLOMOWEJ

Funkcje backendu konfiguratora. Warszawa,

Aplikacje WWW - laboratorium

Dokumentacja użytkownika systemu

Instrukcja użytkownika

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Komponent Formularz. Rys. 1. Strona programu Joomla - Rys. 2. Instalacja komponentu

Autor: Joanna Karwowska

Opis metody pracy Komisji podczas Kwalifikacji TestingCup 2017

PHP: bloki kodu, tablice, obiekty i formularze

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Bazy Danych i Usługi Sieciowe


5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

E-czeki - zakładanie listy odbiorców, raport uprawnień (Bankowość Elektroniczna dla Klientów Korporacyjnych Getin Noble Bank SA)

Centrum Informacji Społeczno-Gospodarczej

Spring Web MVC, Spring DI

Rozdział 4 KLASY, OBIEKTY, METODY

Web frameworks do budowy aplikacji zgodnych z J2EE

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015

Baza danych. Program: Access 2007

Platforma e-learningowa

Funkcje dodatkowe. Wersja 1.2.1

Biblioteki publiczne

Instrukcja użytkownika

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Laboratorium 6 Tworzenie bloga w Zend Framework

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Dodawanie i modyfikacja atrybutów zbioru

KATOWICE, LIPIEC 2018 WERSJA 1.0

Pierwsza niedogodność dotyczy strony zarządzaj działami.

1. INFORMACJE O DOKUMENCIE 2. WPROWADZENIE

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

SYSTEM ZARZĄDZANIA RELACJAMI Z KLIENTEM CRM7

Przewodnik użytkownika (instrukcja) AutoMagicTest

Instrukcja obsługi Generatora

Podstawy technologii WWW

Oracle Application Express

Instrukcja korzystania z portletu Seminaria

Projektowanie aplikacji internetowych Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint Services

EXSO-CORE - specyfikacja

System Obsługi Zleceń

Logowanie do systemu. Rys. 1 Strona logowania

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Instrukcja użytkownika esowk Realizacja wniosku kredytowego przez POS Kredyt gotówkowy

Instrukcja użytkownika

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

Biblioteki publiczne

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

epuap Zakładanie konta organizacji

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2016

Portal Personelu Medycznego Global Services Sp. z o.o.

,Aplikacja Okazje SMS

PODSTAWOWE POJĘCIA BAZ DANYCH

Nowy projekt: - ASP.NET MVC 3 Web Application - [Other Languages] Visual C# Web ASP.NET MVC 3 Web Application - okno dialogowe:

Instrukcja użytkownika esowk Realizacja wniosku kredytowego Kredyt gotówkowy

Instrukcja użytkownika systemu medycznego

Zajęcia 4 - Wprowadzenie do Javascript

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

PWI Instrukcja użytkownika

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Tworzenie bazy danych na przykładzie Access

Instrukcja użytkownika aplikacji modernizowanego Systemu Informacji Oświatowej

Nowe funkcjonalności wersji

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

jako integralna część Regionalnego Systemu Informacji Przestrzennej (RSIP)

1. Logowanie się do panelu Adminitracyjnego

Transkrypt:

Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych pomiędzy źródłami danych, a klientem. Innymi słowami są kontenerami na dane, na których operuje aplikacja Web. Oprócz przechowywania danych mają kilka dodatkowych właściwości, które można wykorzystać. Jedną z nich jest nadanie parametrów walidacji danych, czyli sprawdzania ich poprawności, drugą jest możliwość przekazania ich do widoku. Właściwości te znacznie ułatwiają prace z danymi. W przykładowym kodzie z poprzedniej instrukcji występuje model reprezentujący domy. W tej postaci służył jedynie do przechowywania danych w liście statycznej kontrolera. Następnie przekazywany jest poprzez obiekt ViewBag do widoku gdzie jest wyświetlany.

Jest to najbardziej prymitywny sposób operowania na modelach danych. 2. Przekazywanie Modelu bezpośrednio do kontrolera. Zamiast przekazywać z przeglądarki pojedyncze pola z modelu danych można przekazać cały model. W takim przypadku obiekt domu zostanie utworzony automatycznie przez MVC i przekazany do metody. Ważne, aby input name był identyczny, jak nazwa pola w klasie Modelu.

W poniższym przypadku model posiada pola Adres i Pokoi Możemy również dodać prefiksy dom.adres oraz dom.pokoi. Istotne jest to gdy przekazujemy kilka modeli danych i chcemy je rozróżnić. Prefiks jest zgodny z nazwą argumentu metody kontrolera, do którego formularz zostanie wysłany. Przykładowo możemy dodać w formularzu więcej pól i wysłać dwa modele jedne z prefiksem a drugi b.

3. Widoki zorientowane na typ - model Widoki zorientowane na typ jest widokiem, który jest stworzony do wyświetlania danego modelu danych. Nie trzeba go już przekazywać przez ViewBaga. W niektórych przypadkach widok tego typu współdzielony jest przez metody wielu kontrolerów. Model danych przekazywany jest bezpośrednio do widoku. W tym przypadku przekazywana jest cała lista domów.

W widoku natomiast należy zdefiniować z jakiego modelu będzie korzystać widok przez dodanie @model <typ modelu>. W tym przypadku jest to lista domów @model List<DomModel>. Od tego momentu do modelu danych można dostać się przez zmienną Model.

4. Edycja danych W przypadku edycji-dodawania danych stosuje się najczęściej osobne widoki i metody kontrolerów obsługujących formularze, separując je od ogólnego wyświetlania danych. Nasz kontroler nabył dwie dodatkowe metody Edit: Pierwsza posiada dopisek [HttpGet] oznacza, że reaguje jedynie na żądania z przeglądarki typu GET (czyli sam url z parametrami). Jej zadanie to początkowe wyświetlenie formularza. W przypadku podania id w url-u przekaże użytkownika z listy do formularza. Druga posiada dopisek [HttpPost] analogicznie reaguje ona tylko na żądania typu POST (ten tym służy do przesyłania danych z formularzy). Jej zadaniem jest odebranie danych z formularza i dodać nowy dom lub podmienić istniejący.

Do obu metod wystarczy wyłącznie jeden widok o nazwie Edit zorientowany na tym DomModel. Zauważcie, że formularz przekazywany jest metodą POST. Druga sprawa, formularz nie ma podanego adresu url np. action="/dom/edit", dzięki temu formularz zostanie odesłany na adres, na którym właśnie znajduje się przeglądarka. Czyli odpala się metoda Edit z Get i wyświetla formularz, potem formularz wysyła dane na ten sam adres z modyfikacją metody na post, czyli odpala się metoda Edit z Post. Zobaczcie, że w formularzu nie ma wzmianki na temat parametru id. On jet przesyłany w linku tak jakby GET-em.

Na koniec warto dodać odpowiednio odnośniki w widoku indeks do edycji i dodawania nowego domu. 5. Walidacja danych Jednym z ważniejszych elementów tworzenia aplikacji webowych jest walidacja danych przychodzących od użytkownika. Nie wolno tego ignorować. Walidacji nie podlegają jedynie formularze, ale tak naprawdę wszystko co przyjdzie łączenie z adresem URL (adres sprawdza Wam między innymi MVC dzieląc go na kontroler i metodę). Walidować należy dane szczególnie pod względem: poprawności np. imię czy nazwisko zaczyna się od dużego znaku i zawiera jedynie litery bez dodatkowych znaków. uprawnień dostępu należy sprawdzać, czy jeśli użytkownik nadesłał jakiś formularz to czy ma prawo zmodyfikować dany zbiór danych. Użytkownik może spreparować formularz i podać dowolny nr id np. nadać sobie uprawnienia administracyjne. Formularz w takich przypadkach będzie zawierał poprawny zestaw danych.

Aby walidować poprawność danych modelu należy w pierwszej kolejności nadać odpowiednie atrybuty polom jego klasy; czyli zapisujemy schemat walidacji poszczególnych pól. Pełną listę atrybutów znajdziecie na stronie: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx Najczęściej używane to: Required pole nie może być puste StringLength określa maksymalną liczbę znaków Range określa zakres zmiennych liczbowych RegularExpression pozwala wprowadzić wyrażenie regularne, za pomocą którego można walidować praktycznie dowolne ciągi znaków.

Następnie w kontrolerze należy dodać linijkę która sprawdza w danym momencie poprawność danych przesłanych od użytkownika. ModelState.IsValid zwraca true, jeśli dane w modelu danych są poprawne. Jeśli nie są poprawne, cały model danych jest przekazywany do widoku Edit. Użytkownik w ten sposób może poprawić dane zamiast wpisywać je ponownie.

Ostatecznie brakuje jeszcze informacji o braku poprawności danych w widoku formularza. Przy odpowiednich polach formularza należy wywołać metodę: @Html.ValidationMessage("nazwa pola") Zwróci ona błędy odnoszące się do danego pola lub nic. Efekt końcowy:

Zadanie 1 Rozszerzyć aplikację z poprzednich zajęć, o widoki zorientowane na typy danych. Dodać niezależne metody i widoki pozwalające na edycję danych. Dla przypomnienia, aplikacja ma służyć do zarządzania biblioteką. Podstawową funkcjonalnością jest wyświetlanie i dodawanie książek do katalogu. Dodatkowo aplikacja powinna pozwalać wyszukiwać i usuwać pozycje z katalogu. Zadanie 2 Rozszerzyć o możliwość walidacji danych za pomocą wyrażeń regularnych.