是否可以将请求中的参数映射到具有不同名称的属性?我需要它,因为我想使用由下划线分隔的单词作为url参数,但在C#代码中我想使用普通约定。示例:
?property_name=1 to property PropertyName
在请求中,我使用[FromUri]
参数,如
public IHttpActionResult DoMethod([FromUri(Name = "")] SomeInput input)
最初我认为模型绑定是由Json序列化程序执行的,但可能不是。我也尝试了DataMember属性,但这些方法不起作用。
public class SomeInput
{
[JsonProperty("property_name")]
[DataMember(Name = "property_name")]
public int PropertyName { get; set; }
}
我读到了自定义绑定器,但我希望必须有一些更简单的方法。 任何想法如何使用Owin和Katana在ASP.NET Web API 2中正确和简单地执行此操作?
答案 0 :(得分:3)
您可以使用Name
上的[FromUri]
属性为单个参数重新映射:
public IHttpActionResult DoMethod([FromUri(Name = "property_name")] int propertyName)
要在自定义对象内重新映射,您需要创建一个模型绑定器。