Làm cách nào để nhận URL yêu cầu hoàn chỉnh (bao gồm cả chuỗi truy vấn) trong bộ điều khiển của tôi? Đó có phải là vấn đề ghép nối các thông số URL và biểu mẫu của tôi hay không hay là có cách nào tốt hơn.Nhận url yêu cầu đầy đủ, bao gồm các tham số trong bộ điều khiển
Tôi đã kiểm tra this câu hỏi, nhưng dường như không thể áp dụng cho MVC.
Sửa lỗi nếu tôi sai.
Một số thông tin chi tiết hơn:
cuộc gọi của tôi để SearchController.AdvancedSearch()
của tôi bắt nguồn từ một dạng với khoảng 15 thông số tùy chọn. Bởi vì số lượng các tham số và không có cách nào có thể (tôi nghĩ) để có tham số tùy chọn được truyền đi một cách sạch sẽ, tôi đã đi cho một chuỗi catchall được xử lý trong bộ điều khiển.
Bây giờ tôi muốn bộ điều khiển lưu trữ cuộc gọi của nó trong một thành phần đường dẫn để khi được bấm vào kết quả chính xác tương tự có thể được tìm nạp (với tất cả, nhưng không nhiều hơn, của các đối số được bao gồm). Để thực hiện việc này, tôi cần toàn bộ request.URL, bao gồm chuỗi truy vấn.
Trong Request.RawURL
, request.URL
vv chuỗi truy vấn này không được bao gồm. Trong thực tế hiện tại tôi làm một chức năng đơn giản.
String.Format("{0}/{1}", request.Url, request.form)
Điều này mang lại cho tôi một số kết quả lạ (như giá trị nút gửi, v.v.), nhưng nó hoạt động. Nếu có những gợi ý về cách làm cho điều này ít hơn của một hack xấu xí, xin vui lòng cho biết.
Tôi biết nơi cần tìm yêu cầu hiện tại, nhưng dường như tôi không thể tìm thấy URL thô ở bất kỳ đâu. Tất cả chúng đều bị tước khỏi chuỗi truy vấn và tôi cũng cần bit đó.
Trình điều khiển của tôi cập nhật tập hợp các URL trong thành phần BreadCrumb
của tôi. Do đó, nó cần URL yêu cầu. Làm thế nào để bạn đề nghị tôi đưa vào vấn đề này?
Heh, cảm ơn câu trả lời của bạn mặc dù câu hỏi này giống như 2 tuổi;) Trong khi đó, hai phiên bản khác của MVC đã xuất hiện và các tham số tùy chọn được hỗ trợ bởi khung MVC, hiển thị vấn đề tranh luận. –