Asp.NET在回发后检查CustomValidator是否为有效的客户端

时间:2014-12-04 22:42:01

标签: javascript asp.net

我有一个CustomValidator可以在回发时检查一些内容 - 它无法在客户端进行。

我的所有验证器都是隐藏的,因为样式很难看,而且在不常见的情况下,这个特定的验证器失败了,我想在页面重新加载时触发一个很好的引导弹出窗口。

目前,该页面只是重新加载而没有说明为什么它没有进入向导的下一步。

在页面加载后,我可以检测验证器是成功还是失败的最佳方法是什么?

我正在考虑使用HiddenField,如果验证器无效,请设置值。这似乎是应该已经存在的一种解决方法。

1 个答案:

答案 0 :(得分:-1)

您可以向System.Web.Mvc.ModelState

添加错误
 public ActionResult Index(MyViewModel model)
 {
     if(validation test fails){
         ModelState.AddModelError("key","My custom validation failed!");
         //where key is a property of the model
         return View(); //a @Html.ValidationSummary() in your view will display the error message for you
     }

     if(ModelState.IsValid){ //this if condition is not required since I return on error in my example but just in case you need for your code it will not be valid since you called ModelState.AddModelError
         //validation passed
         //do more work
     }

     //and just in case you needed to manually flush the ModelState of your custom validation
     ModelState["key"].Errors.Clear();
  }

然后在你看来:

   @if (!ViewData.ModelState.IsValid)
    {
        <script>
            $(function() {
                $('#modalCustomErrorId').modal('show');
            });
        </script>
    }