我有一個實體的代碼創建使用EF 4:使用DataAnnotations來驗證模型,不工作
[MetadataType(typeof(MemberMetaData))]
public partial class Member
{
public string ConfirmPassword { get; set; }
[PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "Password and confirm password do not match.")]
public class MemberMetaData
{
[Required(ErrorMessage = "Email is required.")]
[DataType(DataType.EmailAddress, ErrorMessage = "Email is invalid.")]
//[RegularExpression(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$")]
public object Email { get; set; }
[Required]
[DataType(DataType.Password)]
[DisplayName("Password")]
public object Password { get; set; }
[Required]
[DataType(DataType.Password)]
[DisplayName("Confirm Password")]
public object ConfirmPassword { get; set; }
}
}
在會員單位會員性質的電子郵件和密碼爲止。
我試圖使用該數據的註釋以返回一個驗證消息發送回視圖和已創建了一個單元測試像這樣:
[TestMethod]
public void register_post_displays_error_when_email_not_entered()
{
// Arrange
Member model = new Member()
{
Email = "",
Password = "test123",
ConfirmPassword = "test123"
};
// Act
var result = _controller.Register(model) as ViewResult;
// Assert
Assert.AreEqual("Email is required.", result.ViewData.ModelState["Email"].Errors[0].ErrorMessage);
}
這出現故障,當我一步到控制器的ModelState。 IsValid總是如此。這是我的控制器操作:
[HttpPost]
public ActionResult Register(Member model)
{
if (ModelState.IsValid)
{ //register
}
// If we got this far, something failed, redisplay form
return View("Register");
}
爲什麼這不起作用?
只是一個更新的命名空間在我的部分類匹配的是我的實體的做到這一點。 – lloydphillips