MVC: redirect z modelu je koser?
- ras
- Člen | 135
Zdravim vsechny,
chtel bych se zeptat, zda je z pohledu MVC modelu v poradku provest
redirect z modelu?
Kdyz mi model vyhodnocuje nejakou logiku aplikace, tak je i mozne, ze se
dostane do stavu, kdy chci provest redirect → z tohoto pohledu bych rekl, ze
ano … ale nejsem si tim jisty a tak bych se chtel zeptat zkusenejsich + bych
poprosil o pripadne reseni, pokud to model delat nema.
Diky moc.
- duke
- Člen | 650
Není to v pořádku. Redirekce (a obecně jakákoli komunikace mezi tvou aplikací a klientem, který ji používá) je věcí prezentační vrstvy, tj. spadá do view. Pokud, jak říkáš, tvůj model vyhodnocuje nějakou logiku aplikace, pak může o výsledku této operace (např. o nějaké konkrétní změně v modelu) informovat view (nepřímo, na vyžádání view) a view vrstva už se podle toho zařídí např. tak, že vyvolá redirekci.
- Filip Procházka
- Moderator | 4668
Košér by bylo vyhazovat nějakou výjimku. Tu odchytíš a pak přesměruješ, nebo ji obalíš s BadRequestException (v presenteru)
Editoval HosipLan (4. 1. 2012 23:14)
- duke
- Člen | 650
To, o čem mluví HospiLan, se hodí pro případ, že došlo k neplatné operaci modelu (např. dotaz na neexistující data, či odmítnutí přístupu k operaci). Obecně ale může presenter chtít redirektovat i po zdařilé operaci modelu, a v takových případech se k tomu výjimka IMHO nehodí a vhodnější je to pak řešit buď přes návratovou hodnotu volané metody modelu nebo přes notifikační mechanismus (viz např. zde: https://cs.wikipedia.org/wiki/Observer).