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

时间:2013-03-11 17:44:43

标签: asp.net-web-api

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

JSON请求

{
    "app": "acme"
}

请求模型(摘录)

[Alias("app")]
public string ApplicationName { get; set; }

...应该导致ApplicationName填充值'acme'。我正在为此编写自定义模型绑定器:

模型绑定器

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();
    }
}

我已在全球注册了提供商,并且正在按预期命中活页夹。我对下一步该怎么做感到茫然 - 我如何迭代请求值并根据属性的存在有条件地绑定?

1 个答案:

答案 0 :(得分:1)

如果你想做的只是别名,你可以在属性上使用JsonPropertyAttribute,例如[JsonProperty(PropertyName = "app")]