我已经对数据注释应用了一些验证,但不知怎的,我在代码中遗漏了一些东西。
public class Person
{
public people SinglePerson { get; set; }
public IEnumerable<SelectListItem> ColorNames { get; set; }
public IEnumerable<SelectListItem> WebCustomer { get; set; }
public IEnumerable<SelectListItem> PreviouslyOredered { get; set; }
}
这是我的cs类
[MetadataType(typeof(peopleMetaData))]
public partial class people
{
}
public class peopleMetaData
{
[Required(ErrorMessage = "Please enter a name")]
[StringLength(50, MinimumLength = 2)]
public string firstName { get; set; }
}
People
类有firstName
属性,我想对其进行一些验证。
我错过了什么?
答案 0 :(得分:2)
在元数据类中,您不能将“属性”指定为完整属性 - 只需要类型和名称 - 试试这个:
public class peopleMetaData
{
[Required(ErrorMessage = "Please enter a name")]
[StringLength(50, MinimumLength = 2)]
public string firstName;
}
请参阅 - { get; set; }
“属性”firstName
,此处
答案 1 :(得分:1)
对于客户端验证,请确保已包含
@section Scripts { @Scripts.Render("~/bundles/jqueryval") }
在你的观点中
答案 2 :(得分:1)
部分类只能存在于一个项目中。
http://msdn.microsoft.com/en-us/library/wa80x488(v=vs.100).aspx
更具体地说,
所有部分类型定义必须是相同类型的部分 在同一个程序集和相同的模块中定义(.exe或.dll 文件)。部分定义不能跨越多个模块。
答案 3 :(得分:0)
您必须检查模型在控制器中是否有效
if (ModelState.IsValid) {
//do something
}
else
{
return View();
}
答案 4 :(得分:0)
您的人员类没有firstName
的属性。
您首先需要在您的人员类中,然后是MetadataTypeClass
[MetadataType(typeof(peopleMetaData))]
public partial class people
{
public string firstName { get; set; }
}