Tôi đang phát triển một ứng dụng ASP.NET MVC 3 sử dụng C# và Razor.Làm thế nào để thực hiện chức năng tìm kiếm trong C#/ASP.NET MVC
Tôi có một hình thức tìm kiếm mà trông như thế này:
Các hình thức tìm kiếm hoạt động theo cách sau:
- Người dùng chọn mà tài sản mà họ muốn tìm kiếm trên.
- Người dùng chọn cách họ muốn khớp với chuỗi tìm kiếm (ví dụ: chứa, bắt đầu bằng, kết thúc bằng, bằng, v.v.).
- Người dùng nhập cụm từ tìm kiếm và nhấp vào Tìm kiếm.
Các lựa chọn trong menu thả xuống đầu tiên có liên quan trực tiếp đến thuộc tính trong lớp mô hình Khung thực thể ADO.NET của tôi (và do đó trực tiếp đến cột bảng).
Người dùng cần có khả năng chọn rõ thuộc tính nào và phương thức đối sánh nào khi tìm kiếm, ví dụ: người dùng sẽ tìm kiếm tất cả các kết quả phù hợp với số tiến trình bằng '132'.
Cách tiếp cận đầu tiên của tôi là sử dụng LINQ động để xây dựng mệnh đề Where từ tiêu chí tìm kiếm (see my original question). Tuy nhiên tôi bắt đầu nghĩ rằng đây không phải là cách tốt nhất để làm điều đó.
Tôi cũng hy vọng một giải pháp không yêu cầu tôi phải mã hóa cứng kết quả cho mỗi kết hợp tiêu chí của thuộc tính + đối sánh.
Bất kỳ đề xuất nào về cách tôi nên triển khai tìm kiếm này? Nó không phải sử dụng mẫu tìm kiếm hiện tại của tôi, hoàn toàn mở ra cho bất kỳ ý tưởng nào khác phù hợp với yêu cầu.
bạn biết đấy, đây là thời trang cũ soooo! Trong ứng dụng của chúng tôi, chúng tôi sẽ tìm kiếm nhanh chóng đơn giản như thanh địa chỉ của Google Chrome hoặc IE 9, nơi bạn có thể nhập url hoặc tìm kiếm theo văn bản. Không cần phải chỉ định tên cột hoặc điều kiện, chỉ cần thực hiện tìm kiếm văn bản đầy đủ trên các cột có ý nghĩa và kết hợp kết quả với các kết hợp có thể khác, trải nghiệm người dùng dễ dàng và mượt mà hơn, người dùng của chúng tôi yêu thích điều này, sau giai đoạn đầu tiên của "cảm thấy mất": D –
Tôi không chắc liệu loại tìm kiếm đó có cung cấp tính đặc hiệu cần thiết cho người dùng của chúng tôi hay không. Họ cần để có thể xác định rõ ràng cho dù họ muốn có chứa, bằng, vv, và tôi muốn tránh buộc họ phải tìm hiểu một số cú pháp chuỗi để thực hiện điều này. Hãy đặt đề xuất của bạn như một câu trả lời. – link664
Nếu bạn mô hình hóa Thuộc tính, Toán tử và Thuật ngữ là 3 thực thể riêng biệt, tôi không hiểu tại sao tùy chọn 'LINQ động' sẽ buộc bạn phải mã hóa bất cứ thứ gì? Bạn sẽ xây dựng truy vấn LINQ mong đợi - như một chuỗi - từ thông tin được thu thập từ 3 thực thể. Ví dụ: bạn có thể tạo thuộc tính LinkOperation cho thực thể Toán tử sẽ giúp bạn tạo chuỗi này. –