0

編集1:

私はいくつかの調査を行ったので、質問を簡単にしたいと思います:

動的オブジェクトを持つモデルが必要です。

public dynamic AdditionRuntimeData;

このオブジェクトは、実行時にデータベース テーブルを使用して設定されます。このオブジェクトと、このオブジェクト内のプロパティを、実行時に Required 、 Range などの DataAnnotations で装飾したいと考えています。

ICustomTypeDescriptor を実装する方法が先にあるように見えますが、実装後でも、MVC はモデル内の動的オブジェクトが好きではなく、DataAnnotationsModelMetadataProvider.CreateMetadata() メソッドを使用してそのメタデータを要求することさえありません。

この問題を回避する方法はありますか?

class Absence
{
    [Required()]
    public Guid EmpID { get; set; }

    [Required(ErrorMessage = "Start date is  manadatory")]
    [DataType(DataType.Date)]
    [DisplayName("Absence Start Date")]
    public DateTime AbsenceStart { get; set; }

    [Required(ErrorMessage = "End date is  manadatory")]
    [DataType(DataType.Date)]
    [DisplayName("Absence End Date")]
    public DateTime AbsenceEnd { get; set; }


    //Populate this using a helper class which reads from DB and creates a object tree at runtime.
    public dynamic AdditionRuntimeData;

}

注 : AdditionRuntimeData は、子オブジェクトを持つオブジェクトである場合もあれば、値を持つ単純なプロパティである場合もあります。

与えられた答えは、そのような深さを許しません。

4

1 に答える 1

0
ModelState.AddModelError("Fields[x].SomeProperty", "The Error Message you want to show.);

次のリンクを確認してください。

MVC の動的フィールドの検証

于 2013-10-24T13:23:16.620 に答える