Asp.NET MVC ładowanie PartialView przez Ajax

0

Hey,
Mam tabelę, którą filtruję a wynik jako PartialView ładuję na stronę za pomocą Ajax. I to generalnie działa. Problem pojawia się w momencie kiedy system robi przekierowanie. A dzieje się tak wtedy gdy:

  • wystąpi błąd i następuje przekierowanie na stronę z błędem -
  • wygaśnie użytkownikowi AuthenticationTicket i następuje przekierowanie na stronę logowania.

Jeśli w momencie pobierania Ajax-em PartialView z przefiltrowaną tabelką wystąpi jedna z powyższych sytuacji wtedy do diva zamiast tabelki ładuje się strona z przekierowania. Nie bardzo wiem jak to obejść.
Oba przekierowania realizowane są w pliku Global.asax odpowiednio w Application_Error (dla błędu) oraz Application_EndRequest (jeśli użytkownik "wygasł").

0

Ajax udostępnia succes i error, przy error pobierasz przekierowanie i wykonujesz je, bazuję na Mvc Core

0

Ładowanie PartialView mam obsłużone w success co oznacza, że Ajax nie wychwytuje tego jako błąd bo de facto dla niego nim nie jest.

0

Musisz w przypadku błędu zmienić httprequest po stronie serwera i wtedy zadziała. Niektórzy ze względów bezpieczeństwa odradzają używanie httprequest do zwracania błędów, można zwrócić poprawny httprequest oraz dodatkowy parametr czy ok i obsłużyć przekierowanie w succes. To tak z pamięci piszę bo mvc tylko okazyjnie używam ale kiedyś mislem ten sam problem i coś jeszcze w głowie pozostało.

0

Domyslam sie ze nie chodzi o MVC Core- w takim wypadku dla czego probujesz ladowac partial view za pomoca ajax, zamiast korzystac z wbudowanego wsparcia?
Jesli masz mozliwosc to pomysl nad przejsciem na Core- poza masa innych zmian i ulepszen wprowadza view components, ktore maja mini-kontrolery i wydaja sie byc tym czego potrzebujesz.

0
Aventus napisał(a):

Domyslam sie ze nie chodzi o MVC Core- w takim wypadku dla czego probujesz ladowac partial view za pomoca ajax, zamiast korzystac z wbudowanego wsparcia?

W PartialView mam "narysowaną" tabelkę, która zmienia zakres danych w zależności od podanych kryteriów filtrowania. Wykorzystuję do tego Ajax żeby nie odświeżać całej strony.
Wbudowane wsparcie...??? Czyli...??? Jeśli możesz to naprowadź mnie ;)

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