2012-05-22 41 views
11

Tôi đã tạo ứng dụng Asp.net MVC. Bây giờ yêu cầu xử lý 404.Chuyển hướng đến trang 404 lập trình bằng asp.net MVC

Đã cập nhật global.asax và hiển thị trang 404 dựa trên mã trạng thái. Cũng đã thêm thuộc tính customErrors trong web.config. Làm việc tốt.

Bây giờ tôi muốn chuyển hướng đến 404 theo lập trình khi có bất kỳ điều gì không phù hợp với yêu cầu của chúng tôi.

tức là nếu (! Hợp lệ) { return RedirectToAction ("Index", "Page404"); }

của nó làm việc tốt nhưng có 2 tình trạng một là 301 & sau đó 404. Vì vậy, xin vui lòng cho tôi biết làm thế nào tôi có thể ngăn chặn 301. Tôi chỉ cần 404.

Xin vui lòng cho tôi biết làm thế nào tôi có thể đạt được điều này ?

Cảm ơn, Laxmilal Menaria

Trả lời

3

Trong web.config của bạn, thêm:

<customErrors mode="On" > 
     <error statusCode="404" redirect="/404.shtml" /> 
</customErrors> 

Điều này sẽ chuyển hướng trên trang 404.shtml khi không tìm thấy tài nguyên được yêu cầu.

Lưu ý: Không cần chuyển hướng người dùng theo chương trình cho tình huống như vậy.


EDIT: Tôi nghĩa là gợi ý:

if (Context.Response.StatusCode == 404) { 
    // handle this 
} 
2

Chỉ cần ném ra một 404 trong mã trạng thái:

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound 
40

Đơn giản chỉ cần trở về từ hành động của bạn:

return HttpNotFound(); 
+2

Đây là câu trả lời đúng. Trong trường hợp bạn truy vấn cơ sở dữ liệu trong khi phục vụ kết quả và tìm một đối tượng có ID do người dùng chỉ định không tồn tại, bạn cần chuyển hướng người dùng theo chương trình sang trang 404 (hoặc hành động tương tự). – Dermot

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