所以在我的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; }
}
但不是在使用上面的分部类之后。 我真的需要使用部分类。我在这里做错了什么?
谢谢!
答案 0 :(得分: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; }
}
}
答案 1 :(得分:1)
我遇到了类似的问题,最后通过将Model类和Metadata“buddy”类放在同一名称空间中来完成它,即使我的引用似乎没问题。我有点像.net noob但是我对命名空间不太满意,可能是别的。
答案 2 :(得分:1)
嵌套类的内部可能是原因......?
我有一个类似的问题,而且似乎都没有将嵌套的元数据类中的单个字段公开 - 想知道是否整个类内部会导致同样的问题?
答案 3 :(得分:0)
不确定是否有这个帮助,但我遇到了类似的问题并花了好几天时间。最后,这只是一个小改动,为我做了诀窍。
我在配置文件中将UnobtrusiveJavaScriptEnabled
更改为false