SQLテーブルへのルックアップを介してページにレンダリングされるコントロールに関連付けられたラベルを変更する方法を提供したいと思います。
理想的には、ヘルパーを使用してページにレンダリングされるメタデータ表示フィールドを挿入したいと思います。
@Html.LabelFor(m => m.city)
これは実行時にSQLルックアップである必要があるため、デザイン時にdisplaynameアノテーションをスタンプするようにクラスscaffoldttテンプレートを変更することはできません。
私は3つの可能な方法を考えました。
使用したいすべてのhtml.helpersを書き直します。これに関する問題は、変更を加える前に、既存のヘルパーのすべての機能を複製する必要があることです。
カスタムデータ注釈を記述し、クラス内の各プロパティにスタンプします。
[MyCustomNameAttribute] public string city {get; セットする; }
次に、MyCustomNameAttributeクラスで、参照しているlinqフィールド、メタデータモデルへの参照、およびこれらを使用するデータベースコンテキストの両方を見つけることができ、ユーザーが構成した潜在的な名前のカスタマイズに基づいてDisplayNameを取得および置換できます。これを実行しようとしましたが、[Display(Name = "city")]アノテーションがバックグラウンドでどのように機能するかを見つけることができませんでした。
エンティティモデルのバッキングコードを変更して、名前をメタデータモデルに挿入します。
上記の経験はありますか?
乾杯ティム