Powrót do klasy bazowej i przekazywanie modelu w MVC 5.

Odpowiedz Nowy wątek
2018-12-15 21:38
0

Cześć wszystkim :)

Mam taką sytuację: jest klasa bazowa formularza i kilka klas, które dziedziczą tę bazową i mają oprócz tego jakieś swoje specyficzne property. Czyli schematycznie:

public class Bazowa
{
 public int prop1 {get;set;}
 public int prop2 {get;set;}
}

public class Dziecko1: Bazowa
{
 public int prop3 {get;set;}
 public int prop4 {get;set;}
}

public class Dziecko2: Bazowa
{
 public int prop5 {get;set;}
 public int prop6 {get;set;}
}

Wyświetlam sobie "dzieci" jako formularze i chciałbym sobie obsłużyć akcję submitowania tych formularzy (mam na myśli akcję podawaną w Ajax.BeginForm() ) w jednej akcji. Mogę podać jako parametr akcji klasę bazową i wyjątku nie będzie, ale stracę specyficzne pola klas "dzieci". Klasy bazowej jako abstrakcyjnej nie mogę użyć, bo binder tworzy obiekt przed wejsciem do akcji i jak podam w parametrze klasę abstrakcyjną to rzuci piękny wyjątek. Stąd moje pytanie - czy można wrócić w jakiś inny sposób z klasy bazowej do dziedziczącej? Ewentualnie czy jest inny sposób rozwiązania tego problemu?
Z góry dziękuję za wskazówki i pozdrawiam,
Dawid.

Pozostało 580 znaków

2018-12-15 22:05
0

Nie wiem co twoja aplikacja robi ale takie kombinacje mogą być niebezpieczne.

Pozostało 580 znaków

2018-12-15 22:10
0

Nic szczególnego, mam kilka formularzy o wspólnej bazie i zastanawiam się czy można je obsłużyć w jednej akcji. Jeśli są lepsze sposoby to o nie również zapytałem w moim poście.

Pozostało 580 znaków

2018-12-15 22:35
0

Tak jak @szydlak napisał dziedziczenie obiektów DTO to bardzo zły pomysł. Co masz na myśli mówiąc że chcesz obsłużyć kilka formularzy w jednej akcji ?

Pozostało 580 znaków

2018-12-15 22:39
0

Chcę ustalić czy jak mam kilka formularzy o wspólnej bazie to czy submitując każdy z nich powinienem dla każdego z nich robić osobną akcję (czyli tyle metod ile formularzy) czy może da się to zrobić w jednej akcji, korzystając z faktu, że formularze mają wspólną klasę bazową.

@error91 - chodzi Ci o to, że złym pomysłem jest w ogóle wspólna klasa bazowa dla formularzy?

Pozostało 580 znaków

2018-12-15 23:01
1

Jeśli są submitowane oddzielnie to oddzielne metody w api i klasy.
Złym pomysłem jest dziedziecznie w klasach ktore będą serializowane bo to prowadzi do kwiatków jakie właśnie napotkales. Później trzeba robić jakieś hacki. Jeśli jest jeden submit to zrób jeden obiekt i wspolne właściwości niech beda ustawiane raz a dzieci trzymaj w obiektach lub kolekcjach tych obiektów.

edytowany 1x, ostatnio: error91, 2018-12-15 23:03

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0