2008-10-20 9 views

Odpowiedz

18

Reguły/walidacje specyficzne dla domeny powinny znajdować się w Modelu. Możesz mieć model.validate(), aby poinformować, czy reguły nie są naruszone. Przyjrzyj się klasom modelu Rails (ActiveRecord), aby dobrze wdrożyć tę koncepcję.

Widok powinien utrudnić użytkownikowi wprowadzanie nieprawidłowych danych wejściowych. Zatem "wprowadzanie ciągu znaków dla wartości liczbowej" klasy błędów wejściowych powinno zostać zgrane przed dotarciem do prezentera. Może wystąpić dublowanie sprawdzeń między modelem i widokiem. Na przykład. AtrybutX musi mieć zakres od 1 do 100. To musi zostać zatwierdzone w modelu .. w tym samym czasie możesz chcieć zagnieżdżać w spinie w interfejsie użytkownika z minValue i wartością maksymalnej wartości ustawionej na 1-100.

+0

Czy możesz odpowiedzieć http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo

0

Presenter ....

Widok powinien mieć mieć „widgetów”, które uniemożliwiają nieprawidłowe dane gdzie to możliwe.

3

Ja zwykle utrzymuję mój widok całkowicie czysty, bez logiki tam. Ale nie robię dużo programowania. W sytuacjach Ajax-a możesz chcieć przeprowadzić walidację po stronie klienta, która musi przejść w widoku.

Zatwierdzenie logiki biznesowej jest uwzględniane w modelu. Z walidacją logiki biznesowej mam na myśli takie rzeczy, jak sprawdzanie minimalnego rozmiaru zamówienia itp.

Weryfikacja wprowadzania odbywa się w prezencie. Może to być na przykład sprawdzanie, czy pole liczbowe nie zawiera znaków innych niż liczbowe. Ale w zależności od sytuacji może to również oznaczać sprawdzenie, czy istnieją pliki itp.

W bardziej złożonych przypadkach, w których sprawdzanie poprawności powinno być wielokrotnego użytku w różnych miejscach, zazwyczaj dzielę go na mechanizm sprawdzania poprawności, który można wywoływać w różnych miejscach. Rozwiązuje to pewne problemy z duplikowaniem kodu walidacji, który jest używany na przykład w warstwie prezentacji, a także na warstwie trwałości.

+0

To jest podejście, które podjęliśmy - mamy naszą walidację we wspólnym pakiecie, dzięki czemu możemy sprawdzić dane wejściowe dwukrotnie: raz w kliencie, abyśmy mogli natychmiast poinformować użytkownika o nieprawidłowych danych wejściowych, a następnie ponownie w serwerze, aby upewnić się, że użytkownik nie oszukuje. –

Powiązane problemy