使用flurl处理Get / {id} vs Get / id

时间:2017-08-02 12:44:35

标签: c# get asp.net-core-mvc flurl

我试图让Param2 = iif(isnothing(Parameters!Param1.Value,0,Parameters!Param1.Value) 工作,而且我在传递身份证时仍然坚持工作。

Flurl

以上预期

[HttpGet("Get/{id}")]
public IActionResult Get(int id)
{
    // Some something and return
}

所以在Flurl:

Get/1

这产生了这个:

var result = await _baseUrl
    .AppendPathSegment("/Get")
    .SetQueryParam("id", id)
    .GetJsonAsync();

......然后以404失败。

我怎样才能让Flurl设置一个/ id的查询参数或让我接受Get / id和Get?id =

我可以做以下事情,但它看起来并不优雅

/Get?id=8

2 个答案:

答案 0 :(得分:2)

SetQueryParam会将该值添加为查询字符串,但您需要将该值作为路径的一部分。而是考虑使用AppendPathSegments方法,例如:

var result = _baseUrl
    .AppendPathSegments("get", id)
    .GetJsonAsync();

答案 1 :(得分:0)

我这样用:

var result = "https://api.site.com/v1/".AppendPathSegment("endpoint").AppendPathSeparator().SetQueryParam("get", id)
// Outputs: "https://api.site.com/v1/endpoint/?get=5"