Asp.net mvc 分部类中的DataAnnotation问题

Asp.net mvc 分部类中的DataAnnotation问题,asp.net-mvc,data-annotations,partial-classes,Asp.net Mvc,Data Annotations,Partial Classes,所以在我的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(ErrorMessa

所以在我的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; }
}
但是在使用上面的分部类之后。 我真的需要使用分部类。我做错了什么


谢谢

我倾向于使用
元数据
类,如下所示

[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; }
}
这对我来说很好

以下内容也应该有效(并且是实现元数据类的更好方法):


我遇到了一个类似的问题,并最终通过将模型类和元数据“buddy”类放在同一个名称空间中实现了它,尽管我的引用看起来还可以。虽然我有点像.net noob,但我对名称空间不太熟悉,可能是其他原因。

嵌套类的内部是否是原因


我有一个类似的问题,它似乎归结为没有将嵌套元数据类中的单个字段公开-不知道是否使整个类内部出现相同的问题?

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

我在配置文件中将
UnobtrusiveJavaScriptEnabled
更改为false


祝你好运

这太奇怪了,我的项目中往往充满了来自webservices的部分类,我在分配元数据budy类方面没有问题。您使用的DataAnnotation版本是什么?System.ComponentModel.DataAnnotations.dll v3.6。谢谢。我将你的代码粘贴到一个新的MVC应用程序中,验证工作正常。你能发布你的控制器和视图代码吗?
[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; }
    }
}