访问web api中的美元登录参数



我在Asp.Net核心Web API中工作。我编写了一个GET API。在API中,输入参数带有来自URL的$符号。但在c#中,若参数带有美元符号的意思,就无法访问。如果参数名称前面有$符号,如何获取输入值?

public class DataProperties
{
[JsonProperty("skip")]
public int Skip { get; set; }
[JsonProperty("top")]
public int Top { get; set; }
}

控制器

[HttpGet("list")]
public async Task<ActionResult> ListAsync([FromQuery]DataProperties data)
{
}

URL格式

/api/v1/list?$Skip=10&$Top=10

在没有像这样的$符号的情况下,它可以很好地工作

/api/v1/tickets/list?Skip=10&Top=10

注意

我正在使用ODataAdaptor。因此,当使用OData Adaptor时,参数名称前面会自动带有$符号。

因为C#不允许在变量名的开头使用$,但这是查询字符串中参数的有效键,所以可以用[FromQuery]属性装饰参数,并显式指定名称,例如,如果实现标准OData$skip$top参数:

public async Task<IActionResult> Get([FromQuery(Name = "$top")] string top, [FromQuery(Name = "$skip")] string skip)
{
// ...
}

相关内容

  • 没有找到相关文章

最新更新