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

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.

0

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

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.

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 ?

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?

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.

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