我在我的控制器中有以下操作方法。但似乎像Model.IsValid()始终返回false,即使验证条件正常并且不显示成功消息。任何帮助,将不胜感激。ASP.NET MVC模型验证总是失败
[ActionName("CreateNewEmployeeForm")]
[HttpPost]
public ActionResult SaveEmployee(EmployeeViewModel employee, string btnSubmit)
{
switch (btnSubmit)
{
case "Save Employee":
if (ModelState.IsValid)
{
ViewBag.Message = "Thanks! We got your information.";
return View();
}
else
{
return View();
}
break;
case "Cancel":
return RedirectToAction("EmployeeForm");
}
return new EmptyResult();
}
以下是我已经对实体所用的验证:
[Required(ErrorMessage ="Please Enter Your Name!")]
[MaxLength(24)]
[MinLength(8)]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Kindly use letters only for name")]
public string EmployeeName { get; set; }
public string Designation { get; set; }
[Required]
[MaxLength(7)]
[MinLength(4)]
[RegularExpression("[^0-9]*$", ErrorMessage = "Salary must be numeric")]
public decimal Salary { get; set; }
[Required(ErrorMessage = "Please Enter Your Date Of Birth!")]
[DataType(DataType.DateTime)]
public DateTime DateOfBirth { get; set; }
[DataType(DataType.DateTime)]
public DateTime DateCreated { get; set; }
您是否检查过您的视图模型属性以确认它们确实有效? – JB06
只是FYI,你不需要发布'case'的表单取消“',而应该直接使用'@ Html.ActionLink'将页面重定向到'EmployeeForm'(这将节省服务器资源) –
什么验证错误你收到的消息? –