2009-07-07 30 views
6

Tôi có một kịch bản trong đó tôi là serving a file từ codebehind.trả lời với lỗi 404 từ trang asp.net codebehind

tệp nào, tùy thuộc vào yêu cầu. trong một số trường hợp sẽ không có tệp nào để phân phát và tôi muốn trả lại 404 cho trình duyệt.

Tôi có thể làm điều đó từ codebehind bằng cách nào? đây có phải là hành động chính xác để hiển thị cho người dùng không có tệp nào không?

Trả lời

10

bạn có thể sử dụng Response.StatusCode tài sản để trả lại 404:

Page.Response.StatusCode = 404 

Đối với câu hỏi liệu đó là " chính xác điều cần làm "Tôi muốn nói nó phụ thuộc vào cách trang sẽ được truy cập. Nếu bạn sẽ truy cập nó theo chương trình thì tôi có thể đi với 404. Nếu tuy nhiên nó sẽ là một hệ thống hướng đến người dùng, sau đó tôi sẽ đi với một trang tùy chỉnh của một số loại. Các chương trình như mã và con người như những thứ dễ hiểu hơn :-)

0

Tôi muốn có khuynh hướng chuyển hướng chúng đến trang lỗi tùy chỉnh chỉ rõ rằng không thể tìm thấy tệp theo kiểu phần còn lại của ứng dụng web của bạn.

Bạn có thể chỉ định làm thế nào để xử lý các lỗi nhất định trong web.config

<customErrors mode="On"> 
    <error statusCode="404" redirect="FileNotFound.aspx"/> 
</customErrors> 
+0

Tôi đã thử cách này và nó không hoạt động .... – Etienne

6
throw new HttpException(404, "File not found"); 
Các vấn đề liên quan