Q&A – Czy można przeładować metody Action w ASP.NET MVC, jak?

Otóż na pytanie czy można przeładować metody Action w ASP.NET MVC – tak, można. A teraz powiemy sobie jak. Pierwsze co zgodnie z tym co zwykliśmy robić przychodzi nam zapewne do głowy to coś takiego:

Mianowicie mamy tutaj dwie metody o różnych sygnaturach. Zdawałoby się, że jest w porządku. Jednak próba odwołania się do tego kontrolera zaowocuje następującym błędem:
Overload error
Aplikacja nie jest w stanie rozróżnić, którą metodę wywołać.

Z pomocą przychodzi nam tutaj atrybut pozwalający określić „ActionName”. Zobaczmy jak wówczas wyglądałby kod:

Wówczas odwołanie do pierwszej metody wyglądałoby następująco i dawałoby następujący rezultat:
Overload result
Natomiast do drugiej:
Overload result

Możemy zauważyć iż w pierwszym przypadku ścieżka się nie zmieniła. Natomiast w drugim mamy w URL dodatkowy parametr – jest nim właśnie ActionName, który pozwala aplikacji rozróżnić, którą metodę wywołać.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *