Domanda

Diciamo che ho un sito di incontri online, gli utenti possono filtrare l'elenco degli utenti in base a vari criteri, altezza, età, tipo di corpo, origine etnica ....

Voglio passare i criteri al cercapersone, tramite QueryString. L'altezza e l'età sono facili in quanto si tratta di intervalli e io userei

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

Tuttavia, altri criteri come BodyType e le orgine etniche sono elenchi di valori ForeignKey, ad esempio:

Ethnitity:2,3,5

Qual è il modo migliore per passare questi come QueryString? Devo convertirlo in una stringa Json ad esempio:

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

O questo non è valido / eccessivo / troppo complesso?

Forse qualcosa del genere:

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

e analizza i valori dell'elenco suddividendo ',' ?????

Non conosco gli alti e bassi di tutte queste idee. Quindi come passeresti un elenco di valori in una stringa di query?

È stato utile?

Soluzione

L'utilizzo dei valori separati da virgola è l'approccio più pragmatico secondo me. Puoi usare questo codice per dividere i valori:

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

Altri suggerimenti

Entrambi funzioneranno, sebbene la querystring sia molto più facile da "hackerare". Tuttavia, se lo hai ben protetto da valori dannosi / imprevisti, dico che va bene.

Il consumo di dati tramite querystring è relativamente più semplice rispetto a JSON.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top