Asp.net mvc 3 如何使用ASP.NET MVC 3将字段的值绑定到具有不同名称的属性?

Asp.net mvc 3 如何使用ASP.NET MVC 3将字段的值绑定到具有不同名称的属性?,asp.net-mvc-3,c#-4.0,Asp.net Mvc 3,C# 4.0,考虑以下模型,该模型使用和将对象序列化为各自的格式 [XmlRoot("my_model")] [JsonObject("my_model")] public class MyModel { [JsonProperty("property1")] [XmlElement("property1")] public string Property1 { get; set; } [JsonProperty("important")] [XmlElement(

考虑以下模型,该模型使用和将对象序列化为各自的格式

[XmlRoot("my_model")]
[JsonObject("my_model")]
public class MyModel {

    [JsonProperty("property1")]
    [XmlElement("property1")]
    public string Property1 { get; set; }

    [JsonProperty("important")]
    [XmlElement("important")]
    public string IsReallyImportant { get; set; }
}

考虑下面的ASP.NET MVC 3操作,接受JSON或XML请求,并以相应的格式返回模型(基于Access报头)。 JSON和XML输入存在自定义实现。目前,当输入映射到MyModel时,

非常重要
被忽略。但是,如果我将
isreallymeatential
的属性定义为使用“isreallymeatential”,则信息是正确序列化的

[JsonProperty("isreallyimportant")]
[XmlElement("isreallyimportant")]
public string IsReallyImportant { get; set; }
正如预期的那样,默认绑定器在将传入值映射到模型时使用属性名称。我看了一下,但是它在属性上不受支持

如何告诉ASP.NET MVC 3属性
是真正重要的
应该绑定到传入请求中的“重要”属性


我有太多的模型,无法为每个模型编写自定义活页夹。请注意,我不使用ASP.NET Web API。

您只能执行一个自定义ModelBinder,它将查找JSonProperty和XMLElement属性以映射正确的属性。这样,您可以在任何地方使用它,而不必为每个模型开发modelbinder。不幸的是,除了自定义ModelBinder之外,没有其他选项可以修改属性绑定。

您只能执行一个自定义ModelBinder,它将查找JSonProperty和XMLElement属性以映射正确的属性。这样,您可以在任何地方使用它,而不必为每个模型开发modelbinder。不幸的是,除了自定义ModelBinder之外,没有其他选项可以修改属性绑定

[JsonProperty("isreallyimportant")]
[XmlElement("isreallyimportant")]
public string IsReallyImportant { get; set; }