0

我正在使用 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 使用什么?暴露了吗?

4

0 回答 0