Otrzymuję błąd:
Nie można ocenić wyrażenia, ponieważ kod jest zoptymalizowany lub natywna ramka znajduje się na szczycie stosu wywołań.
Przekierowałem do nowej strony w zdarzeniu itemcommand repeatera. Błąd pojawia się na linii:
string url = "~/Galleries/AlbumImageList.aspx?UId=" + this.UserId.ToString() + "&AlbumId=" + e.CommandArgument.ToString();
Response.Redirect(url);
Czy ktoś może mi pomóc? Czy coś jest nie tak? _COMPlusExceptionCode
Jest - 532459699
.
Ustaw drugi argument jako
Response
fałsz, jak pokazano poniżej.źródło
Rozkład
Objawy
Przyczyna
Status
Nieruchomości
Źródło: PRB: wyjątek ThreadAbortException występuje, jeśli używasz Response.End, Response.Redirect lub Server.Transfer
źródło
W błędzie, który badałem, był Response.Redirect () i był on wykonywany w nieoczekiwanej lokalizacji ( czytaj: niewłaściwa lokalizacja - wewnątrz metody pobierającej właściwości elementu członkowskiego ).
Jeśli debugujesz problem i pojawia się wyjątek „ Nie można ocenić wyrażenia ... ”:
Response.Redirect()
i ustaw drugi parametr endResponse = false lubByło to frustrujące, ponieważ wydawało się, że wywołanie przekierowania zostało wykonane, zanim funkcja „przechodzenia przez” debugera dotarła do tej lokalizacji.
źródło
Sprawdź ten link, aby znaleźć przyczynę tego problemu i rozwiązanie błędu:
http://support.microsoft.com/kb/312629/EN-US/
Artykuł pomocy Microsoft:
PRB: Wyjątek ThreadAbortException występuje, jeśli używasz Response.End, Response.Redirect lub Server.Transfer Drukuj Drukuj Email Email
źródło
Ja też miałem ten sam problem i to było trudne. Dla mnie to dlatego, że używam biblioteki javascript Ext.Js. Jeśli wykonujesz odpowiedź.redirect w kodzie po stronie serwera, do którego uzyskano dostęp w wywołaniu Ajax , występują problemy. Ext.js ma obejście z ich metodą Ext.Redirect.
źródło
użyj tego kodu rozwiąż problem:
źródło
Możesz również użyć
Server.Execute
źródło
Wystarczy, że ktoś inny napotkał problemy, które zrobiłem. Używałem Response.End () przycisku wyzwalacza asynchronicznego
w panelu aktualizacji. Przerzuciłem się na zwykły post, który nie był najlepszy, ale zadziałał.
Ponieważ przekierowywałem tylko na stronie, było to realne rozwiązanie.
źródło
Jeśli używasz panelu aktualizacji i przycisku linku do pobrania programu Excel, znajduje się w panelu, a następnie dodaj wyzwalacz postback
oraz w kodzie zdarzenia wewnątrz kliknięcia
źródło
Użyj tego, działa na mnie zawsze.
Tutaj Response.Redirect (Request.RawUrl) po prostu przekierowuje do adresu URL bieżącego kontekstu, podczas gdy drugi parametr „false” wskazuje na endResponse lub nie.
źródło
Ten problem może wystąpić, gdy w mvc masz stronę brzytwy z modelem, który ma pewne reguły sprawdzania poprawności. Kiedy wysyłasz post z formularza i zapomnisz wyświetlić błędy walidacji w jakimś polu, może pojawić się ten komunikat. Spekulacje: może to mieć miejsce, jeśli metoda, do której wysyłasz, jest inna i używana przez inne źródła lub znajduje się w innym miejscu niż metoda obsługująca pierwotne żądanie.
Więc ponieważ jest inny, nie może powrócić do oryginalnej strony, aby wyświetlić lub obsłużyć błędy, ponieważ stan wykonania i modelu nie jest taki sam (coś takiego).
Może to być nieco trudne do wykrycia, ale łatwo popełnić błąd. Upewnij się, że Twoja metoda odbioru faktycznie weryfikuje wszystkie możliwe sposoby wysyłania do niej wiadomości.
na przykład, nawet jeśli masz walidację po stronie serwera, która faktycznie uniemożliwia napisanie w formie łańcucha, który jest większy niż maksymalny dozwolony przez twoją walidację, mogą istnieć inne sposoby i źródła, które wysyłają do metody odbioru.
źródło