我正在使用 UriTemplate (System.ServiceModel) 将模板绑定到对象并创建 url
var baseUri = new Uri("http://example.com");
var template = new UriTemplate("");
var properties = new NameValueCollection
{
{"a", "1"},
{"a", "2"},
{"a", "3"}
};
Assert.Equal(
new Uri(baseUri, "?a=1&a=2&a=3"),
template.BindByName(baseUri, properties));
=>
Expected: http://example.com/?a=1&a=2&a=3
Actual: http://example.com/?a=1%2c2%2c3
预期结果将适用于 webapi 端点,但实际不作为逗号分隔参数的约定不是官方的,并且不受 web api 支持
有没有办法可以得到预期的结果?
我确实需要使用 url 模板来绑定值(例如{one}/two/{three}
),尽管不一定来自 System.ServiceModel 的 UriTemplate - WebApi 使用什么?暴露了吗?