【发布时间】:2011-11-22 06:25:46
【问题描述】:
我们有一个名为 DateReleased 的属性,为其添加了以下数据注释属性
[Required]
[DataType(DataType.Date, ErrorMessage = "Please enter date")]
[DisplayName("Date Released")]
public object DateReleased { get; set; }
以下是向数据库插入新记录的操作
[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 的验证。在我看来,它不那么麻烦了。
标签: asp.net-mvc asp.net-mvc-2 date data-annotations client-side-validation