Asp.net 如何使用查询字符串在单个变量中传递多个键/值对?

Asp.net 如何使用查询字符串在单个变量中传递多个键/值对?,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有一个要求,比如在一个变量中传递查询字符串中的多个值 Id=(细化1=cgid=womens&细化2=c\U细化颜色=Black&细化3=price=(0..500)) 是否可以从查询字符串中接受上述示例值?如果可以,请告诉我如何实现此目的?您应该对其进行URL编码: ?id=(refine_1%3Dcgid%3Dwomens%26refine_2%3Dc_refinementColor%3DBlack%26refine_3%3Dprice%3D(0..500)) 现在假设控制器操作采用id

我有一个要求,比如在一个变量中传递查询字符串中的多个值

Id=(细化1=cgid=womens&细化2=c\U细化颜色=Black&细化3=price=(0..500))


是否可以从查询字符串中接受上述示例值?如果可以,请告诉我如何实现此目的?

您应该对其进行URL编码:

?id=(refine_1%3Dcgid%3Dwomens%26refine_2%3Dc_refinementColor%3DBlack%26refine_3%3Dprice%3D(0..500))
现在假设控制器操作采用
id
参数:

public ActionResult SomeAction(string id)
{
    ...
}
操作中此参数的值将是
(refine\u 1=cgid=womens&refine\u 2=c\u refinementColor=Black&refine\u 3=price=(0..500))

您可以更进一步,编写一个自定义模型绑定器来解析此值,并将其绑定到一个视图模型,该视图模型包含控制器操作可以作为参数而不是
id
string参数的属性。

concat字符串不使用“&”,而是使用其他语法,如“#”.id=(精炼1=cgid=womens#精炼2=c#精炼颜色=黑色#精炼3=price=(0..500))