次のコードがあるとします。
[JsonIgnore]
[Display(Name = "Loan Cap")]
public virtual string SomeProperty { get; protected set; }
DataAnnotationsModelMetadataProvider.CreateMetadata が ASP.NET MVC によって呼び出され、次の呼び出しを実行する場合:
@Html.DisplayNameFor(model => model.SomeAttribute)
CreateMetadata に渡される属性のリストには、[Display] 属性 (または [JsonIgnore] については [JsonIgnore]) が含まれていません。[JsonIgnore] を削除すると、[Display] が見つかり、CreateMetadata に渡されます。なぜこれが起こっているのか誰にも分かりますか?