代码之家  ›  专栏  ›  技术社区  ›  Justin Soliz

Asp.netMvc2数据注释验证(客户端工作,服务器端不工作??)

  •  1
  • Justin Soliz  · 技术社区  · 14 年前

    我使用的是带有元数据注释的实体模型。我的控制器方法如下所示。。。

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

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

    这是我观点的顶部。。。。

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

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   Rob    14 年前

    之后

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

    请注意,TryUpdateModel捕获异常,如果引发异常,则返回false。如果他们不是,那么它简单地返回模型状态.IsValid.