2011-02-02 27 views
5

Tôi hiện đang có chức năng điều khiển này:Thực tiễn tốt nhất cho việc cố chỉnh sửa một mục không tồn tại?

public ViewResult Edit(int id) 
{ 
    //get user from id 
    var user = _adminRepository.GetUser(id); 

    return View(user); 
} 

này hiện mang lại cho tôi một lỗi trên trang điểm của tôi nếu tôi cố gắng để chỉnh sửa một mục với một id của 100, khi không có người dùng với một id của 100 kho dữ liệu.

Thực tiễn tốt nhất để xử lý vấn đề này là gì? Gửi chúng đến trang Tạo hoặc hiển thị thông báo lỗi thân thiện? Chức năng chuyển hướng đó có nằm trong chức năng điều khiển không?

Trả lời

5

Tôi sẽ hiển thị thông báo lỗi thân thiện cho biết người dùng đã bị xóa và cung cấp liên kết đến trang Tạo người dùng nếu họ muốn tạo lại người dùng.

Tôi chống lại việc chuyển hướng người dùng ở bất kỳ nơi nào họ không có ý định đi, vì vậy sẽ tự động chuyển hướng họ đến màn hình Tạo người dùng khi họ dự kiến ​​truy cập màn hình Chỉnh sửa người dùng (Tôi cho rằng họ tách biệt) không phải là giải pháp thân thiện với người dùng nhất.

+0

Đồng ý - hữu ích hơn nhiều so với 404! – IrishChieftain

1

Tôi nghĩ bạn nên chuyển hướng họ đến trang Tạo với thông tin bổ sung về lý do họ được chuyển hướng.

6

IMO nó sẽ làm tăng lỗi 404. Sau khi tất cả người dùng yêu cầu một tài nguyên không tồn tại, giống như một trang web thông thường.

+0

Đồng ý. Không có gì trên trang web nên * liên kết đến trang này * (vì nó không tồn tại), do đó, cách duy nhất để đến đây là thủ công. Nên là một 404. – RPM1984

+0

@ RPM1984 - Ý tưởng là tôi có một mạng lưới người dùng, mỗi người dùng có nút Chỉnh sửa. Chúng tôi đã gặp phải một số vấn đề mà người dùng đã bị xóa bởi một người nào đó, sau đó ai đó đã nhấp vào nút Chỉnh sửa trên trang lưới mà họ đã mở trong một thời gian, gây ra lỗi. – Steven

+0

@Steven: Trong trường hợp đó, bạn nên xem xét định kỳ cập nhật lưới ở phía máy khách để tránh hoàn toàn sự cố. Gốc rễ của tất cả điều ác ở đây dường như là một mạng lưới lỗi thời. –

1

Dựa trên câu trả lời của bạn cho @ RPM1984, tôi nghĩ rằng sự cố của bạn là với Hành động cập nhật vì bạn đã mở chế độ xem. tôi đề nghị bạn chuyển hướng đến trang lỗi thân thiện có nội dung "Người dùng bạn đang cố gắng cập nhật không tồn tại". khi bạn nhấp vào lưu, sau đó tìm ra người dùng không còn ở đó nữa. Với một liên kết để quay lại lưới của bạn và xem tập hợp người dùng mới nhất.

Trang này sẽ rất hữu ích cũng cho một số người dùng có thể thử truy cập vào url trực tiếp thay vì sử dụng mạng lưới của bạn ..

tức

một số có thể gõ

http://mysite.com/users/edit/215215132

nơi 215.215.132 là userId của bạn.

Tôi chỉ giả định đây là cách bạn thực hiện.

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