2011-07-14 32 views
5

Tôi có một chương trình URL như sau:Bộ điều khiển MVC sủi bọt trở lại bộ định tuyến?

website.com/keywords 

và tôi cũng có bộ điều khiển cụ thể:

website.com/controller/action 

Đôi khi các từ khóa có thể nhìn một awful nhiều như URL điều khiển, hoặc có một số loại "/ url/thingy "trên chúng. Tất cả các URL của từ khóa sẽ được lưu trữ trong cơ sở dữ liệu và trả lại nội dung tĩnh. Những gì tôi muốn có thể làm, là có bộ điều khiển "từ khóa" phù hợp đầu tiên (nó chỉ sử dụng {*}) và nếu URL không được tìm thấy trong cơ sở dữ liệu, hãy quay lại bộ định tuyến và để phù hợp tiếp tục.

Hiện tại, tôi đã giải quyết xong bộ định tuyến kết hợp chung và thực hiện chuyển hướng 302 đến bộ điều khiển thích hợp, nhưng đó là thời gian chuyến đi dài hơn và không cần thiết nếu tôi có thể bật trở lại.

+3

Bạn có thể thêm ràng buộc tùy chỉnh vào tuyến đường, có thể khớp với một danh sách. Bạn thậm chí có thể tìm kiếm, ví dụ, một cơ sở dữ liệu trong ràng buộc - nhưng khi mọi thứ sẽ đi qua công cụ định tuyến, tôi không chắc đó là điểm khôn ngoan từ góc độ mở rộng trừ khi bạn lưu bộ nhớ cache hiệu quả. Trong mọi trường hợp, điều này có khả năng nhận được câu trả lời tốt hơn về SO. – FinnNk

Trả lời

2

Không phải là tôi không muốn làm công việc chân trên này vì tôi rất thích có câu trả lời là tốt nhưng tôi đã có đánh dấu này về chủ đề này. custom route constraint

nếu bạn giảm một nửa, bạn có thể xem cách tạo đường viền tùy chỉnh của mình; chỉ cần tìm kiếm Liệt kê 2 - NotEqualConstraint.cs sau đó bạn có thể chuyển vào danh sách được lưu trong bộ nhớ cache của những từ khóa đó hoặc chỉ có ràng buộc tuyến đường tùy chỉnh giữ trong danh sách từ khóa.

+1

Chúng tôi đã kết thúc việc bắt tất cả ở dưới cùng, vì chúng tôi nhận ra rằng chỉ cần một lần truy cập trang cho mỗi khách truy cập, vì sau đó chúng tôi sẽ sử dụng các tuyến đường thích hợp. Tuy nhiên, có câu trả lời. –

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