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

我倾向于使用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 回答
1

我遇到了一个类似的问题,最后通过将模型类和元数据“伙伴”类放在同一个命名空间中来让它工作,即使我的引用看起来没问题。不过,我是一个 .net 菜鸟,所以我对命名空间不太满意,可能是别的东西。

于 2010-01-26T17:06:17.680 回答
1

嵌套类上的 Internal 可能是原因......?

我有一个类似的问题,似乎都归结为不公开嵌套元数据类中的各个字段 - 想知道是否让整个类内部导致同样的问题?

于 2010-09-26T17:48:36.730 回答
0

不确定这是否有帮助,但我遇到了类似的问题并花了几天时间。最后,这只是一个小小的改变,对我有用。

UnobtrusiveJavaScriptEnabled在配置文件中改为false

祝你好运

于 2013-01-25T11:16:13.997 回答