2012-11-06 39 views
5

Tôi đã nơi này trong web.config <system.webServer>MVC4 Trang 404 tùy chỉnh?

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

Con đường được sử dụng tạm thời ở đây [myapplication]/cv/trả về một trang.

Nhưng nếu tôi truy cập [myapplication]/[bất kỳ thứ gì không tồn tại] để nhận phản hồi 404, không có gì xảy ra cả.

Điều này hiện đang hoạt động trên trang web biểu mẫu web cũ của tôi, nhưng tôi không thể làm cho trang web hoạt động trên trang web MVC4. Tôi có thể thực hiện công việc này bằng cách nào? (Tôi không muốn sử dụng "Redirect/File" phương pháp)

Trả lời

10

Đây là những gì tôi có trong dòng MVC 4 dự án:

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

Tôi có một bộ điều khiển lỗi, vì thế quan điểm cho "chung "và" Http404 "(các phương thức hành động).

Hoạt động như một sự quyến rũ.

+1

Tôi đã thử nhiều lần, nhưng nó vẫn hiển thị trang lỗi asp mặc định – Sinaesthetic

+0

Bạn cũng đã tạo bộ điều khiển lỗi và chế độ xem? http://stackoverflow.com/questions/13905164/how-to-make-custom-error-pages-work-in-asp-net-mvc-4 –

+3

Tôi đã làm. Tuy nhiên, tôi đã tìm thấy vấn đề của mình. Tôi đã thực sự trả về một HttpStatusCodeResult như khung làm việc bình thường. Rõ ràng, đó không phải là chọn như một lỗi để các trang lỗi tùy chỉnh không bao giờ được gọi. Tôi thay đổi mã của tôi để ném một HttpException thay vào đó và nó hoạt động ngay bây giờ. Không chắc tôi cảm thấy thế nào về nó – Sinaesthetic

3

Một phần của sự cố cũng có thể xuất phát từ thực tế là thẻ <customErrors> không phải là con hợp lệ của <system.webServer>. Hãy thử đặt nó vào <system.web> để thay thế.

Các vấn đề liên quan