メタデータ用にMVCのDataAnnotationsのクラスを拡張する方法があるかどうかを調べようとしています。
例えば:
自動車が共有するすべての基本的なプロパティを含むVehicleというモデルがある場合、TruckモデルとCarモデルがあります。どちらもVehicleモデルのサブクラスです。
ここで、VehicleにエンジンサイズとVehicle Weightのプロパティが含まれ、TruckにプロパティTowing Capacityが含まれ、CarにプロパティTrunkCapacityが含まれていると仮定します。
Vehicleで共有されているプロパティのメタデータを1回だけ指定する方法はありますか?
私は次のようなものを試しました:
[MetadataType(typeof(VehicleMD))]
public partial class Vehicle
{
public class VehicleMD
{
[Display(Name = "Engine Size")]
public double EngineSize {get;set;}
[Display(Name = "Vehicle Weight")]
public double VehicleWeight {get;set;}
}
}
ただし、TruckまたはCarモデルを使用するビューでは、TruckおよびCarの部分クラスで注釈も指定しない限り、メタデータは適用されません。