繁体   English   中英

Asp.net Mvc2数据注释验证(客户端起作用,服务器端不起作用?)

[英]Asp.net Mvc2 Data Annotations Validation (Client Side works, Server side Doesnt??)

我正在使用带有元数据注释的实体模型。 我的控制器方法看起来像这样...

        if (!ModelState.IsValid)
        {
            return View(model);
        }
        else
        {
            UpdateModel(model);
            repo.Save();
            return RedirectToAction("Index");
        }

如果在视图中启用了客户端验证,我将根据元数据类中的属性获得错误。 如果我进行客户端验证,则保存到数据库时会抛出错误,而不是返回带有错误摘要的视图。

这是我观点的顶部。

<% using (Html.BeginForm())
   {%>
<%: Html.ValidationSummary(true) %>

我已经尝试过在调试和发布模式下运行时不进行调试(ctrl + f5)以及设置断点和调试(f5),但是在没有服务器端验证的情况下进行客户端验证似乎很奇怪。 我在这里想念什么?

UpdateModel从表单集合,路由参数等填充模型,并在服务器端进行验证。 更新后,您需要检查ModelState.IsValid。 通常的模式是...

if (!TryUpdateModel(model))
{
  // Validation Failed...
  return View(model);
}

// Validation Passed...

请注意,TryUpdateModel捕获异常,如果引发异常,则返回false。 如果不是,则简单返回ModelState.IsValid。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM