Asp.net web api ASP.NET Web API将模型属性绑定到不同的请求属性

Asp.net web api ASP.NET Web API将模型属性绑定到不同的请求属性,asp.net-web-api,Asp.net Web Api,我正在尝试编写一个自定义模型绑定器,它可以将一个用属性修饰的属性绑定到一个不同名称的请求属性,例如 JSON请求 请求模型(节选) 。。。应导致使用值“acme”填充ApplicationName。我正在为以下内容编写自定义模型活页夹: 模型粘合剂 模型绑定器提供者 我已经在全球范围内注册了提供商,活页夹正在按预期运行。我不知道下一步该怎么做-如何迭代请求值并根据属性的存在条件绑定?如果您只想做别名,可以在属性上使用JsonPropertyAttribute,类似于[JsonProperty(P

我正在尝试编写一个自定义模型绑定器,它可以将一个用属性修饰的属性绑定到一个不同名称的请求属性,例如

JSON请求 请求模型(节选) 。。。应导致使用值“acme”填充
ApplicationName
。我正在为以下内容编写自定义模型活页夹:

模型粘合剂 模型绑定器提供者
我已经在全球范围内注册了提供商,活页夹正在按预期运行。我不知道下一步该怎么做-如何迭代请求值并根据属性的存在条件绑定?

如果您只想做别名,可以在属性上使用
JsonPropertyAttribute
,类似于
[JsonProperty(PropertyName=“app”)]

我已经尝试过了,不幸的是,它似乎不适用于绑定。我还有
DataMember
属性,但运气不好。你找到解决方案了吗。我不是要在实际的json中使用短名称,而是要为调试使用有意义的变量名
{
    "app": "acme"
}
[Alias("app")]
public string ApplicationName { get; set; }
public BindToAliasModelBinder : IModelBinder {
    public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) {
        ...
    }
}
public class BindFromAliasModelBinderProvider : ModelBinderProvider {
    public override IModelBinder GetBinder(HttpConfiguration configuration, Type modelType) {
        return new BindFromAliasModelBinder();
    }
}