假设我有一个在线交友网站,用户可以根据不同的标准过滤用户列表,身高,年龄,BodyType,种族背景……
我想通过QueryString将条件传递给寻呼机。Height和Age很简单,因为这些都是范围,我会使用
MinHeight=3&MaxHeight=12&MinAge=21&MaxAge=30
但是,其他条件,如BodyType和种族组织,是ForeignKey值的列表,例如:
Ethnitity:2,3,5
将这些作为QueryString传递的最佳方式是什么?我是否应该将其转换为Json字符串,例如:
www.site.com?filterjson={\"minage\":0,\"maxage\":0,\"minheight\":0,\"maxheight\":0,\"bodytypelist\":[1,2,3],"ethnicitylist\":[2,3,4],\"eyecolorlist\":[],\"haircolorlist\":[],\"orientationlist\":[]}
或者这是不是-有效/过度/过于复杂?
可能是这样的:
MinHeight=3&MaxHeight=12&bodytypes=1,2,3&
并通过拆分',‘,?解析列表值
我不知道所有这些想法的起伏。那么如何在查询字符串中传递一个值列表呢?
发布于 2009-11-30 09:16:00
在我看来,使用逗号分隔值是最实用的方法。您可以使用以下代码拆分值:
if (!string.IsNullOrEmpty(Request.QueryString["bodytypes"]))
{
string[] rgs = Request.QueryString["bodytypes"].Split(new char[] { ',' });
}
发布于 2009-11-29 20:48:19
虽然querystring更容易被“破解”,但两者都可以工作。但是,如果你很好地保护它不受恶意/意外值的影响,我认为这是很好的。
通过querystring消费数据相对比通过JSON更直接。
https://stackoverflow.com/questions/1815395
复制相似问题