【问题标题】:Asp.net Mvc2 Data Annotations Validation (Client Side works, Server side Doesnt??)Asp.net Mvc2 数据注释验证(客户端有效,服务器端无效??)
【发布时间】:2010-08-12 23:12:34
【问题描述】:

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

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

如果我在视图中启用客户端验证,我将根据元数据类中的属性得到错误。如果我取消客户端验证,则会从保存到数据库中引发错误,而不是返回带有错误摘要的视图。

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

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

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

【问题讨论】:

    标签: asp.net validation asp.net-mvc-2 data-annotations


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多