2012-11-06 17 views
5

mam miejsce to w web.config <system.webServer>Niestandardowa strona 404 MVC4?

<httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" subStatusCode="-1" path="/cv/" responseMode="ExecuteURL" /> 
</httpErrors> 

Ścieżka, która jest stosowana tymczasowo tutaj [MyApplication]/CV/zwraca stronę.

Ale jeśli przejdę do [myapplication]/[cokolwiek, co nie istnieje], aby uzyskać odpowiedź 404, juste nic się nie dzieje.

To jest obecnie w mojej starej stronie internetowej formularza, ale nie mogę go uruchomić w witrynie MVC4. Jak mogę to ułatwić? (Nie chcę używać „Przekierowanie/plik” metody)

Odpowiedz

10

To jest to, co mam w aktualnym projekcie MVC 4:

<customErrors mode="On" defaultRedirect="~/Error/General"> 
    <error statusCode="404" redirect="~/Error/Http404" /> 
</customErrors> 

Mam kontrolera Błędy i poglądy o „Generalną "i" Http404 "(metody działania).

Działa jak urok.

+1

Próbowałem już wiele razy, ale wyświetla domyślną stronę błędu binarnego – Sinaesthetic

+0

Czy utworzyłeś również kontroler błędów i widoki? http://stackoverflow.com/questions/13905164/how-to-make-custom-error-pages-work-in-asp-net-mvc-4 –

+3

Zrobiłem. Jednak znalazłem swój problem. Właściwie to zwracałem HttpStatusCodeResult, tak jak normalnie. Najwyraźniej nie jest to wykrywane jako błąd, więc niestandardowe strony błędów nigdy nie są wywoływane. Zmieniłem kod, aby zamiast tego wygenerował wyjątek HttpException i teraz działa. Nie jestem pewien, co o tym myślę – Sinaesthetic

3

Część problemu może również wynikać z faktu, że znacznik <customErrors> nie jest prawidłowym potomkiem <system.webServer>. Spróbuj wstawić go w wersji <system.web>.

Powiązane problemy