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