Tôi nhận thấy rằng trong bản xem trước MVC 2 2, AreaRegistration đang tải tuyến đường cho từng khu vực theo thứ tự tùy ý. Có cách nào tốt để lấy cái này trước cái kia không?Khu vực MVC 2Định tuyến tuyến đường Đặt hàng
Ví dụ: tôi có hai khu vực - "Trang web" và "Quản trị". Cả hai đều có bộ điều khiển "Blog".
Tôi muốn sau:
/admin/ --> go to Admin's Blog controller
/ --> go to Site's Blog controller.
Vấn đề là nó đang tải tuyến đường của trang web đầu tiên, vì vậy nó được phù hợp với {controller}/{action}/{id}
thay vì admin/{controller}/{action}/{id}
khi tôi đi đến url "/ admin /". Sau đó tôi nhận được một 404, bởi vì không có bộ điều khiển quản trị trong khu vực "Trang web".
Cả hai khu vực đều mặc định là bộ điều khiển "Blog". Tôi nhận ra rằng tôi có thể chỉ cần đặt site/{controller}/...
làm url, nhưng tôi muốn có nó ở gốc nếu có thể. Tôi cũng đã cố gắng giữ đường mặc định trong chức năng RegisterRoutes toàn cầu, tuy nhiên, nó không được gửi đến khu vực "Sites".
Cảm ơn trước!
Xin chào Phil, cảm ơn lời giải thích. Tôi đã kết thúc di chuyển "trang web" của tôi ra khỏi Khu vực và bây giờ nó là phần "mặc định/không khu vực" (với Chế độ xem và Bộ điều khiển trong thư mục gốc). Sau đó tôi thiết lập paramater namespace của mình cho các controller mặc định để tránh lỗi "ambiguous controller". Ngoài ra, tôi có thể có thể đặt ràng buộc cho một cái gì đó như^((?! admin). *) Để bỏ qua quản trị viên trong các tuyến đường khu vực trang web. Tôi đồng ý, việc thêm độ phức tạp hơn không phải là điều tuyệt vời, mặc dù có vẻ như tuyến đường mvc 1 (không khu vực) có thể có khả năng phụ thuộc nhiều vào trật tự. Cảm ơn! – Jason
Quá trình định tuyến thường phụ thuộc vào thứ tự quy tắc, do đó, tính năng 'đặt hàng' có thể quan trọng. – twk
Vui lòng xem câu trả lời của tôi cho hai kỹ thuật cho phép bạn đặt hàng đăng ký khu vực (và do đó các tuyến đường của họ) theo bất kỳ thứ tự nào. – Eilon