Estoy desarrollando una aplicación ASP.NET MVC 3 usando C# y Razor.Cómo implementar la funcionalidad de búsqueda en C#/ASP.NET MVC
que tienen un formulario de búsqueda que tiene este aspecto:
El formulario de búsqueda funciona de la siguiente manera:
- El usuario selecciona el que la propiedad que quieren buscar en.
- El usuario selecciona cómo quiere que coincida con la cadena de búsqueda (por ejemplo, contiene, comienza con, termina con, iguales, etc.).
- El usuario ingresa un término de búsqueda y hace clic en Buscar.
Las selecciones en el primer menú desplegable se relacionaron directamente con una propiedad en mi clase de modelo de ADO.NET Entity Framework (y, por lo tanto, directamente en una columna de la tabla).
Los usuarios necesitan la capacidad de seleccionar explícitamente qué propiedad y qué método de coincidencia al buscar, p. un usuario buscará explícitamente todas las coincidencias del número de proceso que sea igual a '132'.
Mi primer enfoque fue utilizar dynamic linq para construir una cláusula Where a partir de los criterios de búsqueda (see my original question). Sin embargo, estoy empezando a pensar que esta no es la mejor manera de hacerlo.
También espero una solución que no requiera que codifique el resultado para cada propiedad + combinación de criterios coincidentes.
¿Alguna sugerencia sobre cómo debo implementar esta búsqueda? No tiene que estar utilizando mi formulario de búsqueda actual, totalmente abierto a cualquier otra idea que se ajuste a los requisitos.
ya sabes, esto es tan viejo! En nuestra aplicación tendremos una búsqueda rápida tan simple como Google Chrome o la barra de direcciones de IE 9 donde puede ingresar una url o buscar por texto. Ya no es necesario especificar el nombre o las condiciones de la columna, solo hacer una búsqueda de texto completo en columnas significativas y combinar resultados con otras combinaciones posibles, una experiencia de usuario más sencilla y fluida. Nuestros usuarios adoran esto después de una primera fase de "sentirse perdido": D –
No estoy seguro de si ese tipo de búsqueda proporcionaría la especificidad que necesitan nuestros usuarios. Necesitan poder especificar explícitamente si quieren contener, iguales, etc., y quiero evitar forzarlos a aprender alguna sintaxis de cadena para lograr esto. Siéntase libre de poner su sugerencia como una respuesta. – link664
Si modelas la propiedad, el operador y el término como 3 entidades distintas, no entiendo por qué la opción 'dynamic linq' te obligaría a codificar cualquier cosa. Construiría la consulta de Linq esperada, como una cadena, a partir de la información recopilada de las 3 entidades. Por ejemplo, puede crear una propiedad LinkOperation a la entidad Operator que lo ayudará a construir esta cadena. –