Pregunta

Digamos que tengo un sitio de citas en línea, los usuarios pueden filtrar la lista de usuarios según varios criterios, Altura, Edad, Tipo de cuerpo, Origen étnico ...

Quiero pasar los criterios al buscapersonas, a través de QueryString. La altura y la edad son fáciles, ya que estos son rangos, y usaría

MinHeight=3&MaxHeight=12&MinAge=21&MaxAge=30

Sin embargo, otros criterios como BodyType y Ethnic orgins son listas de valores ForeignKey, por ejemplo:

Ethnitity:2,3,5

¿Cuál es la mejor manera de pasarlos como QueryString? ¿Debo convertirlo a una cadena Json, por ejemplo:

www.site.com?filterjson={\"minage\":0,\"maxage\":0,\"minheight\":0,\"maxheight\":0,\"bodytypelist\":[1,2,3],"ethnicitylist\":[2,3,4],\"eyecolorlist\":[],\"haircolorlist\":[],\"orientationlist\":[]}

¿O es esto no válido / excesivo / demasiado complejo?

Quizás algo como esto:

MinHeight=3&MaxHeight=12&bodytypes=1,2,3&

y analiza los valores de la lista dividiendo ',' ?????

No conozco los altibajos de todas estas ideas. Entonces, ¿cómo pasaría una lista de valores en una cadena de consulta?

¿Fue útil?

Solución

El uso de valores separados por comas es el enfoque más pragmático en mi opinión. Puede usar este código para dividir valores:

if (!string.IsNullOrEmpty(Request.QueryString["bodytypes"]))
{
   string[] rgs = Request.QueryString["bodytypes"].Split(new char[] { ',' });
}

Otros consejos

Ambos funcionarán, aunque la cadena de consulta es mucho más fácil de "hackear". Sin embargo, si lo tiene bien protegido de valores maliciosos / inesperados, le digo que está bien.

El consumo de datos a través de la cadena de consulta es relativamente más sencillo que el de JSON.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top