次のような一般的なプロパティを持つモデルがあります。
class PairedData<T>
{
public T Value {get;set;}
public bool IsValid {get;set;}
}
私が持っているモデルでは:
class SomeModel
{
[UIHint ("PairedInt")]
public PairedData<int> SomeInt {get;set;}
[UIHint ("PairedDateTime")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}"]
public PairedData<DateTime> SomeDate {get;set;}
}
次に、PairedDateTime の表示テンプレートに次のものがあります。
@model PairedData<DateTime>
@Html.DisplayFor(m => m.Value)
問題は、DisplayFor が日付形式を適用しないことです。その理由は明らかです。DisplayFormat 属性は、Value プロパティではなく SomeDate にあるため、読み取られません。
問題は、DisplayFor に別の場所から属性を読み取るように指示する方法があるかどうかです。または、表示テンプレート内で同じ情報を手動で DisplayFor に渡す方法はありますか? または、DateTime のインスタンス化でのみ属性を Value に適用する方法はありますか (ありそうにないと思います)。
前もって感謝します。