Skip to main content
 首页 » 编程设计

c#之ASP.NET Web API 模型绑定(bind)之不同的参数名称

2024年04月30日41zhenyulu

是否可以将参数从请求映射到具有不同名称的属性?我需要它,因为我想使用下划线分隔的单词作为 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)器。