我們已經爲它下面的數據註釋屬性添加數據類型的客戶端驗證在MVC不靈2
[Required]
[DataType(DataType.Date, ErrorMessage = "Please enter date")]
[DisplayName("Date Released")]
public object DateReleased { get; set; }
稱爲DateReleased屬性以下是其實現爲插入新記錄到數據庫的操作
[HttpPost]
public ActionResult Create([Bind(Exclude="Id")] Movie movie)
{
try
{
if (ModelState.IsValid)
{
_entities.AddToMovies(movie);
_entities.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
catch
{
return View();
}
}
我已啓用客戶端驗證,通過將下面的代碼行中創建視圖
<script type="text/javascript" src="../../Scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="../../Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.js"></script>
<script type="text/javascript" src="../../Scripts/MicrosoftMvcValidation.js"></script>
<% Html.EnableClientValidation(); %>
但我很驚訝地發現,只有需要驗證是在客戶端觸發。 Date的數據類型驗證僅在服務器端觸發。請讓我知道客戶端驗證失敗背後的原因,以及什麼是解決客戶端驗證的解決方法。
如果你確實需要大量的客戶端驗證,我建議你升級到MVC3,它有更好的基於jquery.validate的驗證。在我看來,這樣做不那麼麻煩。 –