Asp.net web api 默认ASP.Net WebApi参数绑定是否可以用于包含破折号(“-”)的查询参数?

Asp.net web api 默认ASP.Net WebApi参数绑定是否可以用于包含破折号(“-”)的查询参数?,asp.net-web-api,model-binding,Asp.net Web Api,Model Binding,我在这里指的是参数绑定: 但我要绑定的查询参数是“api版本”,它不是合法的C#标识符。将此绑定到名为“ApiVersion”的C#属性的最简单方法是什么[就像查询参数实际上是“ApiVersion=”]?使用属性魔法 [JsonProperty(PropertyName="api-version")] public int ApiVersion { get; set; } FromUri属性有一个可选的Name属性 public IHttpActionResult Version([Fro

我在这里指的是参数绑定:

但我要绑定的查询参数是“api版本”,它不是合法的C#标识符。将此绑定到名为“ApiVersion”的C#属性的最简单方法是什么[就像查询参数实际上是“ApiVersion=”]?

使用属性魔法

[JsonProperty(PropertyName="api-version")]
public int ApiVersion { get; set; }

FromUri
属性有一个可选的
Name
属性

public IHttpActionResult Version([FromUri(Name="api-version")] string apiVersion)
{
    ...
}

它可能会与json有效负载主体一起工作,但如果它是URI中的查询参数,则对我不起作用?根据RFC规范,api version=“
-
确实是无保留的。hmmm