我在我的控制器中有以下操作方法。但似乎像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'(這將節省服務器資源) –
什麼驗證錯誤你收到的消息? –