2

だから私のmvcプロジェクトのProject.Repositoryで私は持っています

[MetadataType(typeof(FalalaMetadata))]
public partial class Falala
{
    public string Name { get; set; }

    public string Age { get; set; }

    internal sealed class FalalaMetadata
    {
        [Required(ErrorMessage="Falala requires name.")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Falala requires age.")]
        public string Age { get; set; }
    }
}

Project.Web.AccountControllersのモデルとしてFalalaを使用し、メソッドを使用して違反を取得します。検証は私が持っていたときに機能しました

public class Falala
{
    [Required]
    public string Name { get; set; }

    [Required(ErrorMessage="error")]
    public string Age { get; set; }
}

ただし、上から部分クラスを使用した後ではありません。私は本当に部分的なクラスを使用する必要があります。私はここで何が間違っているのですか?

ありがとう!

4

4 に答える 4

1

ネストされたクラスのInternalが理由でしょうか...?

私も同様の問題を抱えていましたが、ネストされたメタデータクラスの個々のフィールドをパブリックにしないことに要約されているように見えました-クラス全体を内部にすることで同じ問題が発生するのではないでしょうか?

于 2010-09-26T17:48:36.730 に答える
1

私は同様の問題に遭遇し、Model クラスと Metadata "buddy" クラスの両方を同じ名前空間に配置することで、最終的に機能するようになりました。私は一種の .net noob ですが、名前空間にまったく慣れていないので、別のものである可能性があります。

于 2010-01-26T17:06:17.680 に答える
1

Metadata私は次のようにクラスを使用する傾向があります。

[MetadataType(typeof(FalalaMetadata))]
public partial class Falala
{
    public string Name { get; set; }

    public string Age { get; set; }
}
public class FalalaMetadata
{
    [Required(ErrorMessage="Falala requires name.")]
    public string Name { get; set; }

    [Required(ErrorMessage = "Falala requires age.")]
    public string Age { get; set; }
}

これは私にとってはうまくいきます。

以下も機能するはずです(メタデータクラスを実装するためのより良い方法です):

[MetadataTypeAttribute(typeof(Falala.FalalaMetaData))]
public partial class Falala
{
    internal sealed class FalalaMetadata
    {
        [Required(ErrorMessage="Falala requires name.")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Falala requires age.")]
        public string Age { get; set; }
    }
}
于 2010-01-20T23:00:39.350 に答える
0

これが役立つかどうかはわかりませんが、同様の問題があり、何日も費やしました。最後に、それは私にとってはちょっとした変更でした。

UnobtrusiveJavaScriptEnabled設定ファイルで falseに変更しました

幸運を

于 2013-01-25T11:16:13.997 に答える